From 1b2927ce40a5722da6f223874fae143f51d04c35 Mon Sep 17 00:00:00 2001 From: Moritz Date: Tue, 6 Jan 2026 17:18:30 +0100 Subject: [PATCH] feat: create Authorization domain Add Mv.Authorization domain with AshAdmin and AshPhoenix extensions. Register domain in config for role management. --- lib/mv/authorization/authorization.ex | 30 +++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 lib/mv/authorization/authorization.ex diff --git a/lib/mv/authorization/authorization.ex b/lib/mv/authorization/authorization.ex new file mode 100644 index 0000000..23672f1 --- /dev/null +++ b/lib/mv/authorization/authorization.ex @@ -0,0 +1,30 @@ +defmodule Mv.Authorization do + @moduledoc """ + Ash Domain for authorization and role management. + + ## Resources + - `Role` - User roles that reference permission sets + + ## Public API + The domain exposes these main actions: + - Role CRUD: `create_role/1`, `list_roles/0`, `update_role/2`, `destroy_role/1` + + ## Admin Interface + The domain is configured with AshAdmin for management UI. + """ + use Ash.Domain, + extensions: [AshAdmin.Domain, AshPhoenix] + + admin do + show? true + end + + resources do + resource Mv.Authorization.Role do + define :create_role, action: :create_role + define :list_roles, action: :read + define :update_role, action: :update_role + define :destroy_role, action: :destroy + end + end +end