Rolify Hier
The very simple role hierarchy library for rolify
Requirements
- Rails >= 3.2
- rolify
Installation
Add this to your Gemfile.
gem 'rolify_hier'
Getting Started
1. Configure role hierarchy
rails g rolify_hier:initializer
generates config/initializers/rolify_hier.rb
:
RolifyHier.config do
# role(:root) << role(:admin) << role(:user)
## or
# role(:root) << role(:admin)
# role(:admin) << role(:user)
## ->
## root has root, admin, user
## admin has admin, user
## user has user
end
If you want to configure 'king > bishop > knight > pawn' hierarchy, then write like below.
RolifyHier.config do
role(:king) << role(:bishop) << role(:knight) << role(:pawn)
## Also works equally
# role(:king) << role(:bishop)
# role(:bishop) << role(:knight) << role(:pawn)
end
2. Example
I assume that you already know rolify.
RolifyHier.config do
role(:king) << role(:bishop) << role(:knight) << role(:pawn)
end
class User < ActiveRecord::Base
include RolifyHier
rolify # for rolify
end
user = User.new
user.add_role :knight
user.hier_role? :pawn # true
user.hier_roles.has_role? :pawn # true. `hier_role?` equals `hier_roles.has_role?`
user.hier_role? :knight # true
user.hier_role? :bishop # false
user.hier_role? :king # false
# Multiple roles work
user2 = User.new
user2.add_role :pawn
user2.add_role :bishop
user2.hier_role? :pawn # true
user2.hier_role? :knight # true (because of bishop role)
user2.hier_role? :bishop # true
user2.hier_role? :king # false
Author
Sputnik Gugja ([email protected])
License
This is free software released into the public domain (CC0 license).
See the LICENSE
file.