Skip to content

Instantly share code, notes, and snippets.

@carlossanchezp
Created April 27, 2013 16:09
Show Gist options
  • Save carlossanchezp/5473616 to your computer and use it in GitHub Desktop.
Save carlossanchezp/5473616 to your computer and use it in GitHub Desktop.
ability.rb
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user
if user.role? :admin
can :manage, :all
else
can :read, :all
can :create, Comment
can :update, Comment do |comment|
comment.try(:user) == user || user.role?(:moderator)
end
if user.role?(:author)
can :create, Article
can :update, Article do |article|
article.try(:user) == user
end
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment