View Source Ash.Authorizer behaviour (ash v2.9.20)
The interface for an ash authorizer
These will typically be implemented by an extension, but a custom one can be implemented by defining an extension that also adopts this behaviour.
Then you can extend a resource with authorizers: [YourAuthorizer]
Link to this section Summary
Link to this section Types
Link to this section Callbacks
@callback add_calculations(Ash.Query.t() | Ash.Changeset.t(), state(), context()) :: {:ok, Ash.Query.t() | Ash.Changeset.t()} | {:error, Ash.Error.t()}
@callback alter_results(state(), [Ash.Resource.record()], context()) :: {:ok, [Ash.Resource.record()]} | {:error, Ash.Error.t()}
@callback check(state(), context()) :: :authorized | {:data, [Ash.Resource.record()]} | {:error, term()}
@callback initial_state( Ash.Resource.t(), Ash.Resource.record(), Ash.Resource.Actions.action(), boolean() ) :: state()