Permalink
Browse files

Adding ability (for v.0.2.1)

  • Loading branch information...
1 parent 6d1809c commit 61c98aa4948b63a9f8e8c6bba372b17f9756defb @kirs committed Jan 28, 2012
Showing with 8 additions and 22 deletions.
  1. +8 −22 app/models/ability.rb
View
@@ -3,27 +3,13 @@ class Ability
def initialize(user)
# 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
- cannot :index, Discussion
- #
- # 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: https://github.com/ryanb/cancan/wiki/Defining-Abilities
+ user ||= User.new # guest user (not logged in)
+
+ unless user.new_record?
+ can [:index, :create], Discussion
+ can :read, Discussion do |discussion|
+ discussion.can_participate?(user)
+ end
+ end
end
end

0 comments on commit 61c98aa

Please sign in to comment.