A Mongo Mapper implementation of Roles Generic See the Roles wiki for an overview of the API and how to use it.
Role strategies implemented:
Inline attribute on User:
- admin_flag
- roles_mask
- role_string
- role_strings
Reference to Role:
- many_roles
- one_role
Update Dec 24, 2010
Embedded role:
- embed_one_role
- embed_many_roles
Please join in the effort to implement and add these embedded strategies to the mix. They have so far been implemented successfully for Mongoid.
gem install roles_mongo_mapper
Insert in Gemfile:
gem 'roles_mongo_mapper'
Run $ bundle install
from terminal
Alternatively install using Cream
Example: role_string strategy
class User include MongoMapper::Document include Roles::MongoMapper strategy :one_role valid_roles_are :admin, :guest, :user end
Example: one_role strategy
class User include MongoMapper::Document include Roles::MongoMapper strategy :one_role valid_roles_are :admin, :guest, :user end
The library comes with a Rails 3 generator that lets you populate a user model with a role strategy of your choice.
Apply :admin_flag Role strategy to User model using default roles :admin and :guest (default)
$ rails g mongo_mapper:roles User --strategy admin_flag
Apply :admin_flag Role strategy to User model using default roles and extra role :author
$ rails g mongo_mapper:roles_migration User --strategy admin_flag --roles author
Apply :one_role Role strategy to User model without default roles, only with roles :user, :special and :editor
$ rails g mongo_mapper:roles_migration User --strategy one_role --roles user special editor --no-default-roles
- 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.