Permit.Ecto.Permissions.ParsedCondition (permit_ecto v0.3.1)

Copy Markdown View Source

Represents the product of parsing a condition by a function implementing the Permit.Permissions.can/1 callback.

Replaces Permit.Permissions.ParsedCondition in applications using Permit.Ecto. Refer to Permit.Permissions.ParsedCondition documentation for more details.

In add_conditionition to the original implementation, its metadata also includes dynamic query constructors, derived from Permit.Operators.DynamicQuery.

A condition parsed by Permit's rule syntax parser contains:

  • condition semantics, that is: a function that allows for checking whether the condition is satisfied
  • an indication of whether it is negated (i.e. a condition defined as {:not, ...})
  • metadata (:private), which can be used by alternative parsers (e.g. Permit.Ecto.Permissions puts dynamic query constructors there)

Part of the private API, subject to changes and not to be used on the application level.

Summary

Types

dynamic_query()

@type dynamic_query() :: (struct(), struct() -> Ecto.Query.t())

Functions

to_dynamic_query(parsed_condition, subject, resource, query)