Watchman is a simple solution for doing Authentication and Authorization. This plugin is far from complete however it has the features below.
$ script/generate watchman_migrations
This generates about 6 tables and sets a few unique indices. Run the migration and relax.
Watchman believes that roles belong to models and so it lets you declare roles and permissions in the model.
class Document < ActiveRecord::Base
has_roles :owner, :collaborator
permit :owner, :to => [:edit, :delete, :share]
permit :collaborator, :to => [:share]
end
The plugin includes an assign
method in every model.
document=Document.new(params[:document]) document.assign :role, :to=>current_user
These roles and permissions can then be used in the controller and various other parts of your rails app. Watchman provides the following convenience methods on the User class included in the plugin.
@User.in_role? :owner, Document.find(:first)
#checks if the user has role for the document instance
#it takes the logged in user as default from the UserSession object
#this searches both the groups and users associated with the role
user.can? :collaborate, @document
- Optimize the query for a bazillion users. Get rid of loops.
Copyright © 2009 Artha42 Technology Solutions Pvt. Ltd., released under the MIT license