add rbacs
All checks were successful
Build and Publish / build-release (push) Successful in 2m4s

This commit is contained in:
2026-05-07 14:01:18 -05:00
parent 9439c62507
commit 07a232c131
3 changed files with 17 additions and 11 deletions

View File

@@ -18,10 +18,14 @@ defmodule PolicyServiceWeb.Plugs.AuthorizationPlug do
- :resource_owner_check - Function to check if user owns the resource (optional)
"""
def init(opts) do
required_permission = Keyword.get(opts, :required_permission, nil)
required_scopes = Keyword.get(opts, :required_scopes, [])
resource_owner_check = Keyword.get(opts, :resource_owner_check, nil)
%{
required_roles: Keyword.get(opts, :required_roles, []),
required_scopes: Keyword.get(opts, :required_scopes, []),
resource_owner_check: Keyword.get(opts, :resource_owner_check, nil)
required_permission: required_permission,
required_scopes: required_scopes,
resource_owner_check: resource_owner_check
}
end
@@ -57,12 +61,12 @@ defmodule PolicyServiceWeb.Plugs.AuthorizationPlug do
:ok
end
defp check_roles(user_roles, required_roles) do
if has_any_role?(user_roles, required_roles) do
defp check_roles(user_roles, required_permission) do
if has_any_role?(user_roles, required_permission) do
:ok
else
Logger.warning(
"User with roles #{inspect(user_roles)} lacks required roles: #{inspect(required_roles)}"
"User with roles #{inspect(user_roles)} lacks required permission: #{inspect(required_permission)}"
)
{:error, :insufficient_role}