Module: DmForum::Concerns::Ability

Defined in:
app/models/dm_forum/concerns/ability.rb

Instance Method Summary collapse

Instance Method Details

#dm_forum_abilities(user) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'app/models/dm_forum/concerns/ability.rb', line 15

def dm_forum_abilities(user)
  if user
    #--- Admin
    if user.has_role?(:forum_manager)
      can :manage_forums, :all
      can :access_admin, :all
    end

    #--- Forum
    can(:read, Forum)   { |forum| forum.can_be_read_by?(user) }
    can(:reply, Forum)  { |forum| forum.can_be_replied_by?(user) }
    can :moderate, Forum, :id => Forum.published.with_role(:moderator, user).map(&:id)
    
    #--- Comment
    can :edit, ForumComment, :user_id => user.id
  else
    #--- can only read/see public forums when not logged in
    can(:read, Forum)   { |forum| forum.can_be_read_by?(user) }
  end
end