defmodule AclWeb.AclController do use AclWeb, :controller alias AclWeb.RuleController alias AclWeb.ResController alias AclWeb.RoleController def hasAccess(role, res \\nil, action \\nil, permission \\"read") do RuleController.checkRule(role, res, action, permissionTranslate(permission)) end defp permissionTranslate (permission) do case permission do "POST" -> "write" "GET" -> "read" "PUT" -> "edit" "DELETE" -> "delete" "write" -> "write" "read" -> "read" "edit" -> "edit" "delete" -> "delete" _ -> nil end end def addRule(conn, params) do RuleController.addRule(params) end def getRule(conn, params) do RuleController.getRule(params) end def addAclRole(conn, params) do IO.inspect(params) RuleController.addRule(params) end def addAclRes(conn, params) do RuleController.addRule(params) end def allowAccess(conn, %{__struct__: _} = rule) do case RuleController.denyRule(rule) do true -> {:ok, :allowed} false -> {:error, "rule not found, perhaps create new rule?"} end end def allowAccess(conn, params) do case RuleController.denyRule(params) do true -> {:ok, :allowed} false -> {:error, "rule not found, perhaps create new rule?"} end end def denyAccess(conn, %{__struct__: _} = rule) do case RuleController.denyRule(rule) do true -> {:ok, :allowed} false -> {:error, "rule not found, perhaps create new rule?"} end end def denyAccess(conn, params) do case RuleController.denyRule(params) do true -> {:ok, :allowed} false -> {:error, "rule not found, perhaps create new rule?"} end end end