Packages
ash_oban
0.1.5
0.8.10
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0-rc.1
0.8.0-rc.0
0.7.2
0.7.1
0.7.0
0.6.0
0.5.1
0.5.0
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.6
0.2.5
0.2.4
0.2.3
0.2.3-rc.1
0.2.3-rc.0
0.2.2
0.2.1
0.2.0
0.1.14
0.1.13
0.1.12
0.1.11
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
The extension for integrating Ash resources with Oban.
Current section
Files
Jump to
Current section
Files
lib/checks/ash_oban_interaction.ex
defmodule AshOban.Checks.AshObanInteraction do
@moduledoc """
This check is true if the context `private.ash_oban?` is set to true.
This context will only ever be set in code that is called internally by
`ash_oban`, allowing you to create a bypass in your policies on your
user/user_token resources.
```elixir
policies do
bypass AshObanInteraction do
authorize_if always()
end
end
```
"""
use Ash.Policy.SimpleCheck
@impl Ash.Policy.Check
def describe(_) do
"AshOban is performing this interaction"
end
@impl Ash.Policy.SimpleCheck
def match?(_, %{query: %{context: %{private: %{ash_oban?: true}}}}, _), do: true
def match?(_, %{changeset: %{context: %{private: %{ash_oban?: true}}}}, _), do: true
def match?(_, _, _), do: false
end