Skip to content


Subversion checkout URL

You can clone with
Download ZIP
CanCan extension with role oriented permission management, rules caching and much more
Pull request Compare This branch is even with kristianmandrup:cantango-1x.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.



CanTango is an advanced Access Control (permissions) system for Rails 3. It:

  • extends CanCan to support more advanced scenarios
  • integrates with role and authentication systems in a non-intrusive manner
  • can cache ability rules between requests for increased performance
  • can store abilites in a permission store, including a YAML file, for easy administration
  • works well with multiple user accounts (and sub-applications)
  • supports multiple Devise users

Will CanTango meet my Access Control (permission) requirements?

Status Dec 1 2011

CanTango 1.x is currently under development. We expect to have a release by year end of 2011 or in January 2012 (hopefully). Please help support this project and help add specs, come with suggestions, improve the code etc.


CanTango has been tested to work with Ruby 1.9+ and currently doesn't support Ruby 1.8.7 If you require ruby 1.8.7 support, please help patch it and make a pull request ;)

Install in Ruby environment (or gem set)

gem install cantango

Install in Rails application

Insert into Gemfile of your Rails application:

gem 'cantango'

If you want to live on the edge and use the latest master branch, use the :git option. To designate a specific branch, use the :branch option. You can also clone this project and reference your local copy (easier to debug/fix) by using the :path option (see Bundler documentation).

Run bundler in a terminal/console from the folder of your Gemfile (root folder of the app)

$ bundle

CanTango components

CanTango has now been split up into these logical components:

Engines (Ability executors):


Currently the cantango-1x branch


See the Quickstart guide in the wiki.

For devise integration, see Quickstart CanTango with Devise

The following scenarios demonstrate some of the problems CanTango can help solve in an elegant way


Cantango comes with a set of Generators to get your app dancing...

Install CanTango using

  • cantango:install

$ rails g cantango:install


The CanTango Configuration consists of a nice nested configuration DSL.

You need help?

Please post ideas, questions etc. in the cantango group on Google.

Bugs, issues or feature request/ideas?

If you encounter bugs, raise an issue or:

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.



Copyright (c) 2010 Kristian Mandrup. See LICENSE for details.

Something went wrong with that request. Please try again.