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:
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)
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.
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
$ 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.
- [Kristian Mandrup]:(https://github.com/kristianmandrup)
- [Stanislaw Pankevich]:(https://github.com/stanislaw)
Copyright (c) 2010 Kristian Mandrup. See LICENSE for details.