Class: Spree::PermissionConfiguration
- Inherits:
-
Object
- Object
- Spree::PermissionConfiguration
- Defined in:
- lib/spree/core/permission_configuration.rb
Constant Summary collapse
- DEFAULT_ROLE =
Default role used for unauthenticated users
:default- ADMIN_ROLE =
Admin role with full access
:admin
Instance Method Summary collapse
-
#assign(role_name, permission_sets) ⇒ Array<Class>
Assigns permission sets to a role.
-
#clear(role_name) ⇒ Array<Class>
Clears all permission sets from a role.
-
#initialize ⇒ PermissionConfiguration
constructor
A new instance of PermissionConfiguration.
-
#permission_sets_for(role_name) ⇒ Array<Class>
Returns the permission sets assigned to a role.
-
#permission_sets_for_roles(role_names) ⇒ Array<Class>
Returns all permission sets for multiple roles.
-
#reset! ⇒ Object
Resets all role permissions to empty state.
-
#role_configured?(role_name) ⇒ Boolean
Checks if a role has any permission sets assigned.
-
#roles ⇒ Array<Symbol>
Returns all configured roles.
Constructor Details
#initialize ⇒ PermissionConfiguration
Returns a new instance of PermissionConfiguration.
27 28 29 |
# File 'lib/spree/core/permission_configuration.rb', line 27 def initialize = {} end |
Instance Method Details
#assign(role_name, permission_sets) ⇒ Array<Class>
Assigns permission sets to a role.
42 43 44 45 46 |
# File 'lib/spree/core/permission_configuration.rb', line 42 def assign(role_name, ) role_key = normalize_role_name(role_name) [role_key] ||= [] [role_key] |= Array() end |
#clear(role_name) ⇒ Array<Class>
Clears all permission sets from a role.
52 53 54 55 |
# File 'lib/spree/core/permission_configuration.rb', line 52 def clear(role_name) role_key = normalize_role_name(role_name) .delete(role_key) end |
#permission_sets_for(role_name) ⇒ Array<Class>
Returns the permission sets assigned to a role.
61 62 63 64 |
# File 'lib/spree/core/permission_configuration.rb', line 61 def (role_name) role_key = normalize_role_name(role_name) [role_key] || [] end |
#permission_sets_for_roles(role_names) ⇒ Array<Class>
Returns all permission sets for multiple roles.
70 71 72 |
# File 'lib/spree/core/permission_configuration.rb', line 70 def (role_names) role_names.flat_map { |role_name| (role_name) }.uniq end |
#reset! ⇒ Object
Resets all role permissions to empty state. Useful for testing.
92 93 94 |
# File 'lib/spree/core/permission_configuration.rb', line 92 def reset! = {} end |
#role_configured?(role_name) ⇒ Boolean
Checks if a role has any permission sets assigned.
85 86 87 88 |
# File 'lib/spree/core/permission_configuration.rb', line 85 def role_configured?(role_name) role_key = normalize_role_name(role_name) .key?(role_key) && [role_key].any? end |
#roles ⇒ Array<Symbol>
Returns all configured roles.
77 78 79 |
# File 'lib/spree/core/permission_configuration.rb', line 77 def roles .keys end |