Module: Cream::Helper::Role
- Defined in:
- lib/cream/helper/role.rb,
lib/cream/configure/after_init/role_config.rb
Instance Method Summary collapse
-
#for_roles(*user_roles, &block) ⇒ Object
(also: #for_role)
execute block if user DOES have any of the given roles.
-
#has_role?(*roles) ⇒ Boolean
does the user have ANY of the given roles? Uses generic roles API.
-
#has_roles?(*roles) ⇒ Boolean
does the user have ALL of the given roles? Uses generic roles API.
-
#not_for_roles(*user_roles, &block) ⇒ Object
(also: #not_for_role)
execute block if user DOES NOT have any of the given roles.
-
#owner?(obj, relation = nil) ⇒ Boolean
returns true if the current user owns the object tries default ‘owner’ relations if none given as an argument.
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
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
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
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 |