Class: Spree::RoleConfiguration
- Inherits:
-
Object
- Object
- Spree::RoleConfiguration
- Includes:
- Singleton
- 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.
Class Method Summary collapse
-
.configure {|instance| ... } ⇒ Object
Yields the instance of the singleton, used for configuration.
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.
22 23 24 |
# File 'lib/spree/core/role_configuration.rb', line 22 def roles @roles end |
Class Method Details
.configure {|instance| ... } ⇒ Object
Yields the instance of the singleton, used for configuration
26 27 28 |
# File 'lib/spree/core/role_configuration.rb', line 26 def self.configure yield(instance) 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.
38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/spree/core/role_configuration.rb', line 38 def ability, user spree_roles = user.spree_roles.pluck(: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
63 64 65 66 67 68 |
# File 'lib/spree/core/role_configuration.rb', line 63 def role_name, name = role_name.to_s roles[name]. |= roles[name] end |