Authorization for Rails + GUI. Semantic, Flexible, Lightweight
Latest commit a4bf0d6 Dec 4, 2016 @the-teacher v3.7
Failed to load latest commit information.
lib fix typo Feb 3, 2015
.gitignore dummy_and_configs Dec 15, 2013
Gemfile ~~~ Feb 27, 2012 Update Mar 2, 2016
Rakefile dev_release Oct 29, 2011
gem_version.rb v3.7 Dec 4, 2016
the_role.gemspec v3.7 Dec 4, 2016

TheRole 3.0

Authorization gem for Ruby on Rails with Management Panel

TheRole. Authorization gem for Ruby on Rails with Administrative interface

Semantic. Flexible. Lightweight

TheRole: Gem Version API: Gem Version GUI: Gem Version CI: Build Status  ruby-toolbox

Strongly recommended to upgrade from TheRole2 to TheRole3. Please, do it ASAP.


TheRole is an authorization library for Ruby on Rails which restricts what resources a given user is allowed to access. All permissions are defined in with 2-level-hash, and stored in the database as a JSON string.

TheRole. Authorization gem for Ruby on Rails with Administrative interface

Using hashes, makes role system extremely easy to configure and use

  • Any Role is a two-level hash, consisting of the sections and nested rules
  • A Section may be associated with a controller name
  • A Rule may be associated with an action name
  • A Section can have many rules
  • A Rule can be true or false
  • Sections and nested Rules provide an ACL (Access Control List)

Management Panel

TheRole GUI

Import/Export operations provided via TheRole Management Panel. If you have 2 Rails apps, based on TheRole - you can move roles between them via export/import abilities of TheRole Management Panel. It can be usefull for Rails apps based on one engine.

TheRole. Authorization gem for Ruby on Rails with Administrative interface

Limitations by Design

TheRole uses few conventions over configuration. It gives simplicity of code, but also some limitations. You have to know about them before using of TheRole: Limitations list

We need your feedback!

If you have to say something about TheRole, or if you need help, there are few ways to contact us:

  1. SKYPE: ilya.killich
  2. Email:
  3. TWITTER: @iam_teacher
  4. Hash tag: #the_role
  5. Google group: about the_role

Test matrix

  • RAILS: 3.2.21, 4.0, 4.1, 4.2
  • RUBY: 1.9.3, 2.0, 2.1, 2.2
  • DB: sqlite, mysql, postgresql

totally: 48 environments

Supported locales: the_role_api | the_role_management_panel (please, help us with them)

MIT License

MIT License Copyright (c) 2012-2015 Ilya N.Zykin


@the-teacher, @sedx, @seuros


@igmarin @doabit @linjunpop @egb3 @klacointe @niltonvasques

Thanks for contributors