Class: Mokio::Ability
- Inherits:
-
Object
- Object
- Mokio::Ability
- Includes:
- CanCan::Ability
- Defined in:
- app/models/mokio/ability.rb
Instance Method Summary collapse
-
#initialize(user) ⇒ Ability
constructor
Define abilities for the passed in user here.
Constructor Details
#initialize(user) ⇒ Ability
Define abilities for the passed in user here. For example:
user ||= User.new # guest user (not logged in)
if user.admin?
can :manage, :all
else
can :read, :all
end
The first argument to ‘can` is the action you are giving the user permission to do. If you pass :manage it will apply to every action. Other common actions here are :read, :create, :update and :destroy.
The second argument is the resource the user can perform the action on. If you pass :all it will apply to every resource. Otherwise pass a Ruby class of the resource.
The third argument is an optional hash of conditions to further filter the objects. For example, here the user can only update published articles.
can :update, Article, :published => true
See the wiki for details: github.com/bryanrite/cancancan/wiki/Defining-Abilities
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'app/models/mokio/ability.rb', line 31 def initialize(user) if user.has_role? :admin can :manage, :all end if user.has_role? :content_editor can :manage, [Mokio::Content] end if user.has_role? :menu_editor can :manage, [Mokio::Menu] end if user.has_role? :static_module_editor can :manage, [Mokio::StaticModule] end if user.has_role? :user_editor can :manage, [Mokio::User] end if user.has_role? :reader can :read, :all end can :edit_password, Mokio::User can :update_password, Mokio::User end |