8000 GitHub - vincentvanbush/cantare: Declarative, Ecto-aware authorization rules library for Elixir
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

vincentvanbush/cantare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cantare Build Status

Declarative action authorization library for Elixir, inspired by CanCanCan.

Provide simple ability rules for your application using idiomatic Elixir patterns, just like this:

defmodule YourApp.Abilities do
  import Cantare.Abilities

  alias YourApp.Schemas.User
  alias YourApp.Schemas.{Item, Post}

  use Cantare.Abilities, repo: YourApp.Repo

  def abilities(User) do
    User
    |> can(:show, Item, fn %User{} = user, %Item{} = item -> item.active end)
    |> can(:edit, Post, fn %User{} = user, %Post{} = post -> Ecto.DateTime.compare(post.created_at, user.created_at) == :gt end)
    |> can(:create, League, fn current_user -> [name: current_user.email] end)
  end
end

Further README steps coming soon... This is still a very work-in-progress library that has just been separated out of a private project from which it originated. There is still plenty of problems to resolve - perhaps most importantly, it still needs to be adapted to Ecto 3.

Stay tuned!

Installation

If available in Hex, the package can be installed by adding cantare to your list of dependencies in mix.exs:

def deps do
  [
    {:cantare, "~> 0.1.0"}
  ]
end

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/cantare.

About

Declarative, Ecto-aware authorization rules library for Elixir

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages

0