blangenfeld / acts_as_checkpoint
- Source
- Commits
- Network (0)
- Issues (0)
- Downloads (0)
- Wiki (3)
- Graphs
-
Tree:
cc6a589
| name | age | message | |
|---|---|---|---|
| |
MIT-LICENSE | ||
| |
README | ||
| |
Rakefile | ||
| |
init.rb | ||
| |
install.rb | ||
| |
lib/ | ||
| |
tasks/ | ||
| |
test/ | ||
| |
uninstall.rb |
README
ActsAsCheckpoint ================ This plugin provides a very simple syntax for setting up complex permissions. Example for Controllers ======================= Role-oriented approach: class YourController < ApplicationController acts_as_checkpoint :get_user_method => :current_user controller_allows :administrator, :to => [ :index, :show, :destroy ] controller_allows :registered_user, :to => [ :index, :show, :new, :edit, :create, :update ] controller_allows :anonymous_user, :to => [ :index, :show ] end Action-oriented approach: class YourController < ApplicationController acts_as_checkpoint :get_user_method => :current_user controller_allows :index , :by => [ :administrator, :registered_user, :anonymous_user ] controller_allows :show , :by => [ :administrator, :registered_user ] controller_allows :new , :by => :registered_user controller_allows :edit , :by => :registered_user controller_allows :create , :by => :registered_user controller_allows :update , :by => :registered_user controller_allows :destroy, :by => :administrator end The two approaches may be interspersed at will... just try not to get confused. Example for Models ================== class Dog < ActiveRecord::Base belongs_to :owner acts_as_checkpoint model_may :eat, :drink, :lick model_allows :lick, :by => :self model_allows :pet, :by => :owner end class Human < ActiveRecord::Base has_many :dogs acts_as_checkpoint model_may :pet model_allows :lick, :by => :dogs end human = Human.new dog = Dog.new( :owner => human ) human.can_pet?( dog ) # => true dog.can_eat?( human ) # => false dog.can_lick?( human ) # => true Copyright (c) 2008 Brian Langenfeld, released under the MIT license

