# permit_ecto v0.3.0 - Table of Contents Ecto integration for the Permit authorization library. ## Modules - Setup - [Permit.Ecto](Permit.Ecto.md): Integrates [`Permit`](https://github.com/curiosum-dev/permit) with Ecto, providing means to convert permissions to Ecto queries, automatically constructing `Ecto.Query` scopes to preload records that meet authorization criteria. - Permissions - [Permit.Ecto.Permissions](Permit.Ecto.Permissions.md): Defines the application's permission set. Replaces `Permit.Permissions` when `Permit.Ecto` is used, but its syntax is identical. - [Permit.Ecto.Permissions.DynamicQueryJoiner](Permit.Ecto.Permissions.DynamicQueryJoiner.md): Joins a DNF of conditions represented by a `Permit.Permissions.DisjunctiveNormalForm` into an Ecto dynamic query. - [Permit.Ecto.Permissions.ParsedCondition](Permit.Ecto.Permissions.ParsedCondition.md): Represents the product of parsing a condition by a function implementing the `c:Permit.Permissions.can/1` callback. - Operators - [Permit.Operators.DynamicQuery](Permit.Operators.DynamicQuery.md): Implemented to define a dynamic query builder function for an operator, that is a module that implements `Permit.Operators.GenOperator`. - Resolution - [Permit.Ecto.Resolver](Permit.Ecto.Resolver.md): 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. - Types - [Permit.Ecto.Types](Permit.Ecto.Types.md): Defines Ecto-specific types for usage with Permit. - [Permit.Ecto.Types.ConditionTypes](Permit.Ecto.Types.ConditionTypes.md): Provides new types for usage with Ecto queries, as well as replacements for types initially defined in `Permit.Types.ConditionTypes`. - Errors - [Permit.Ecto.UnconvertibleConditionError](Permit.Ecto.UnconvertibleConditionError.md) - [Permit.Ecto.UndefinedConditionError](Permit.Ecto.UndefinedConditionError.md): Raised when the permissions module (implementing `Permit.Permissions`) does not contain sufficient information to compute authorization for a given action. ## Mix Tasks - [mix permit_ecto.install](Mix.Tasks.PermitEcto.Install.md): Installs Permit.Ecto authorization into your project, creating an authorization module and a permissions module configured for Ecto.