Terminator
Simple elixir library for managing abilities
WIP: NOT INTENDED FOR PRODUCTION USE
Installation
If available in Hex, the package can be installed
by adding terminator
to your list of dependencies in mix.exs
:
def deps do
[
{:terminator, "~> 0.1.0"}
]
end
Usage
config.exs
config :terminator,
ecto_repo: Blog.Repo
lib/blog/post.ex
defmodule Blog.Post do
alias Blog.User
alias Blog.Role
use Ecto.Schema
use Terminator.Guard, performer: User, role: Role
...
def create() do
load_and_authorize_performer(%User{id: 1000})
preconditions do
ability(:create_blog_post)
end
as_authorized do
IO.inspect("Creating blog post")
end
do