Class: Spree::RoleConfiguration
- Inherits:
-
Object
- Object
- Spree::RoleConfiguration
- Defined in:
- lib/spree/core/role_configuration.rb
Overview
A class responsible for associating Role with a list of permission sets.
Defined Under Namespace
Classes: Role
Instance Attribute Summary collapse
-
#roles ⇒ Object
Returns the value of attribute roles.
Instance Method Summary collapse
-
#activate_permissions!(ability, user) ⇒ Object
Given a CanCan::Ability, and a user, determine what permissions sets can be activated on the ability, then activate them.
-
#assign_permissions(role_name, permission_sets) ⇒ Object
Assign permission sets for a Role that has the name of role_name.
Instance Attribute Details
#roles ⇒ Object
Returns the value of attribute roles.
32 33 34 |
# File 'lib/spree/core/role_configuration.rb', line 32 def roles @roles end |
Instance Method Details
#activate_permissions!(ability, user) ⇒ Object
Given a CanCan::Ability, and a user, determine what permissions sets can be activated on the ability, then activate them.
This performs can/cannot declarations on the ability, and can modify its internal permissions.
42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/spree/core/role_configuration.rb', line 42 def (ability, user) spree_roles = ['default'] | user.spree_roles.map(&:name) = Set.new spree_roles.each do |role_name| |= roles[role_name]. end .each do || .new(ability).activate! end end |
#assign_permissions(role_name, permission_sets) ⇒ Object
Assign permission sets for a Spree::Role that has the name of role_name
67 68 69 70 71 72 |
# File 'lib/spree/core/role_configuration.rb', line 67 def (role_name, ) name = role_name.to_s roles[name]..concat roles[name] end |