Add policies for Publisher resource.

dev
KKlochko 2 months ago
parent 840549dd66
commit 12c805c0bf

@ -3,11 +3,34 @@ defmodule DecentralisedBookIndex.Metadata.Publisher do
otp_app: :decentralised_book_index, otp_app: :decentralised_book_index,
domain: DecentralisedBookIndex.Metadata, domain: DecentralisedBookIndex.Metadata,
data_layer: AshPostgres.DataLayer, data_layer: AshPostgres.DataLayer,
extensions: [AshJsonApi.Resource] extensions: [AshJsonApi.Resource],
authorizers: [Ash.Policy.Authorizer]
require Ash.Query require Ash.Query
alias DecentralisedBookIndex.Metadata 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 json_api do
type "publisher" type "publisher"
end end

Loading…
Cancel
Save