Oriza 
A way to add contexts to function calls. Given:
defmodule MyModule do
use Oriza.Context
context(:do_something, [:arg], [admin: [:read, :write]])
def do_something(arg), do: arg
endCreates the following additional function definition:
def do_something(user_context, arg) do
with :ok <- check_context(user_context, %Oriza.Context{keys: [admin: [:read, :write]]}) do
do_something(arg)
else
_ -> {:error, "access denied"}
endInstallation
Oriza can be added as a project dependency:
def deps do
[
{:oriza, "~> 0.0.3-alpha"}
]
endAfter adding the dependency, modules can use Oriza, which will give access to the context macro.