Module: Cream::Helper::Role

Defined in:
lib/cream/helper/role.rb,
lib/cream/configure/after_init/role_config.rb

Instance Method Summary collapse

Instance Method Details

#for_roles(*user_roles, &block) ⇒ Object Also known as: for_role

execute block if user DOES have any of the given roles



28
29
30
31
# File 'lib/cream/helper/role.rb', line 28

def for_roles(*user_roles, &block) 
  user_roles = user_roles.flatten
  yield if has_role?(user_roles) && block
end

#has_role?(*roles) ⇒ Boolean

does the user have ANY of the given roles? Uses generic roles API

Returns:

  • (Boolean)


5
6
7
# File 'lib/cream/helper/role.rb', line 5

def has_role?(*roles)
  current_user.has_role? roles.flatten
end

#has_roles?(*roles) ⇒ Boolean

does the user have ALL of the given roles? Uses generic roles API

Returns:

  • (Boolean)


11
12
13
# File 'lib/cream/helper/role.rb', line 11

def has_roles?(*roles)
  current_user.has_roles? roles.flatten
end

#not_for_roles(*user_roles, &block) ⇒ Object Also known as: not_for_role

execute block if user DOES NOT have any of the given roles



35
36
37
38
# File 'lib/cream/helper/role.rb', line 35

def not_for_roles(*user_roles, &block)            
  user_roles = user_roles.flatten
  yield if !has_role?(user_roles) && block
end

#owner?(obj, relation = nil) ⇒ Boolean

returns true if the current user owns the object tries default ‘owner’ relations if none given as an argument

Returns:

  • (Boolean)


17
18
19
20
21
22
23
24
25
# File 'lib/cream/helper/role.rb', line 17

def owner?(obj, relation=nil)
  if relation     
    return true if user_relation?(obj, relation)
  end                                
  [:user, :owner, :author].each do |relation|        
    return true if user_relation?(obj, relation)
  end
  false
end