Skip to content
atogPublic

About

Rails authorization plugin

Resources

Stars

61 stars

Watchers

21 watching

Forks

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Roleify

A Rails authorization plugin

Dependent on Clearance (should be configurable in the future though)

Example

Make sure your User object has a "role" attribute (String).

Add an initializer

Roleify::Role.configure(%w(role_a role_b role_c role_d role_e)) do
  {
    :role_a => { :issues =>  :all },
    :role_b => { :issues => "index" },
    :role_c => { :dashboard_issues => :all },
    :role_d => { :all => :all },
    :role_e => { :all => :all, :except => :issues }
  }
end

In the example above "role_a", "role_b" and "role_c" are the roles you are defining. The block contains the rules for these roles. There is no need to define an "admin" role, since it's added by default.

  • Users with role "role_a" are allowed to access all actions of IssuesController.
  • Users with role "role_b" are only allowed to access the index action of the IssuesController.
  • Users with role "role_c" are allowed to access all actions of Dashboard::IssuesController.
  • Users with role "role_d" are allowed to access all actions of all controllers.
  • Users with role "role_e" are allowed to access all actions of all controllers except for the actions of the issues controller.
  • Users with role "admin" are allowed to access all actions of all controllers.

The controller

class IssuesController < ActionController::Base
  include Clearance::Authentication
  include Roleify::RoleifyableController
end

The User model

class User < ActiveRecord::Base
  include Clearance::User
  include Roleify::RoleifyableModel
end

The Helper

module ApplicationHelper
  include Roleify::RoleifyableHelper
end

The View

<% allowed?(Roleify::Role::ROLE_A) do %>
  whatever you want for role_a eyes only
<% end %>

Extra's

Constants: Roleify::Role::ADMIN, Roleify::Role::ROLE_A, Roleify::Role::ROLE_B

Named scopes are automatically added: User.admins, User.role_as, User.role_bs

Methods: User.admin?, User.role_a?, User.role_b?

Copyright (c) 2009 Koen Van der Auwera - 10to1, released under the MIT license

About

Rails authorization plugin

Resources

Stars

61 stars

Watchers

21 watching

Forks

Releases

Packages

Contributors

Languages