Permit.Ecto.Resolver (permit_ecto v0.2.4)

View Source

Implementation of Permit.ResolverBase behaviour, resolving and checks authorization of records or lists of records based on automatic Ecto query construction, taking parameters as input and :base_query and :finalize_query functions as means to transform the query based on e.g. current controller context.

For a resolver implementation not using Ecto for fetching resources, see Permit.Resolver from the permit library.

The usage of Permit.Ecto.Resolver as opposed to Permit.Resolver in permit_ecto library occurs because in the m:Permit.Ecto.__using__/1 macro the resolver_module/0 function is overridden to point to Permit.Ecto.Resolver.

This module is to be considered a private API of the authorization framework. It should not be directly used by application code, but rather by wrappers providing integration with e.g. Plug or LiveView.

Summary

Functions

authorize_and_preload_all!(subject, authorization_module, resource_module, action, meta)

@spec authorize_and_preload_all!(
  Permit.Types.subject(),
  module(),
  Permit.Types.resource_module(),
  Permit.Types.action_group(),
  map()
) :: {:authorized, [struct()]} | :unauthorized | {:not_found, term()}

authorize_and_preload_one!(subject, authorization_module, resource_module, action, meta)

@spec authorize_and_preload_one!(
  Permit.Types.subject(),
  module(),
  Permit.Types.resource_module(),
  Permit.Types.action_group(),
  map()
) :: {:authorized, [struct()]} | :unauthorized

authorized?(subject, authorization_module, resource_or_module, action)