Add policies for AuthorRole resource.

This commit is contained in:
2025-04-14 22:08:03 +03:00
parent d3233a7aab
commit 775564ea1d
2 changed files with 39 additions and 11 deletions
@@ -3,10 +3,33 @@ defmodule DecentralisedBookIndex.Metadata.AuthorRole do
otp_app: :decentralised_book_index,
domain: DecentralisedBookIndex.Metadata,
data_layer: AshPostgres.DataLayer,
extensions: [AshJsonApi.Resource]
extensions: [AshJsonApi.Resource],
authorizers: [Ash.Policy.Authorizer]
alias DecentralisedBookIndex.Metadata
policies do
bypass actor_attribute_equals(:role, :admin) do
authorize_if always()
end
policy action_type(:read) do
authorize_if always()
end
policy action_type(:create) do
authorize_if actor_attribute_equals(:role, :moderator)
end
policy action_type(:update) do
authorize_if actor_attribute_equals(:role, :moderator)
end
policy action_type(:destroy) do
authorize_if actor_attribute_equals(:role, :admin)
end
end
json_api do
type "author_role"
end