Class: EasyAdmin::Permissions::RoleDefinition
- Inherits:
-
Object
- Object
- EasyAdmin::Permissions::RoleDefinition
- Defined in:
- lib/easy_admin/permissions/role_definition.rb
Instance Attribute Summary collapse
-
#description ⇒ Object
readonly
Returns the value of attribute description.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#permissions ⇒ Object
readonly
Returns the value of attribute permissions.
-
#slug ⇒ Object
readonly
Returns the value of attribute slug.
Instance Method Summary collapse
-
#can(actions, resource) ⇒ Object
Grant permissions for a resource.
-
#cannot(actions, resource) ⇒ Object
Deny permissions for a resource (explicit).
-
#granted_permissions ⇒ Object
Get all granted permissions.
-
#has_permission?(permission_key) ⇒ Boolean
Check if role has a specific permission.
-
#initialize(name, slug: nil, description: nil) ⇒ RoleDefinition
constructor
A new instance of RoleDefinition.
-
#manage(resource) ⇒ Object
Grant all CRUD permissions for a resource.
Constructor Details
#initialize(name, slug: nil, description: nil) ⇒ RoleDefinition
Returns a new instance of RoleDefinition.
6 7 8 9 10 11 |
# File 'lib/easy_admin/permissions/role_definition.rb', line 6 def initialize(name, slug: nil, description: nil) @name = name @slug = slug || name.parameterize @description = description @permissions = {} end |
Instance Attribute Details
#description ⇒ Object (readonly)
Returns the value of attribute description.
4 5 6 |
# File 'lib/easy_admin/permissions/role_definition.rb', line 4 def description @description end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
4 5 6 |
# File 'lib/easy_admin/permissions/role_definition.rb', line 4 def name @name end |
#permissions ⇒ Object (readonly)
Returns the value of attribute permissions.
4 5 6 |
# File 'lib/easy_admin/permissions/role_definition.rb', line 4 def @permissions end |
#slug ⇒ Object (readonly)
Returns the value of attribute slug.
4 5 6 |
# File 'lib/easy_admin/permissions/role_definition.rb', line 4 def slug @slug end |
Instance Method Details
#can(actions, resource) ⇒ Object
Grant permissions for a resource
14 15 16 17 18 19 |
# File 'lib/easy_admin/permissions/role_definition.rb', line 14 def can(actions, resource) Array(actions).each do |action| = "#{resource}:#{action}" @permissions[] = true end end |
#cannot(actions, resource) ⇒ Object
Deny permissions for a resource (explicit)
22 23 24 25 26 27 |
# File 'lib/easy_admin/permissions/role_definition.rb', line 22 def cannot(actions, resource) Array(actions).each do |action| = "#{resource}:#{action}" @permissions[] = false end end |
#granted_permissions ⇒ Object
Get all granted permissions
40 41 42 |
# File 'lib/easy_admin/permissions/role_definition.rb', line 40 def @permissions.select { |_, granted| granted == true }.keys end |
#has_permission?(permission_key) ⇒ Boolean
Check if role has a specific permission
35 36 37 |
# File 'lib/easy_admin/permissions/role_definition.rb', line 35 def () @permissions[] == true end |
#manage(resource) ⇒ Object
Grant all CRUD permissions for a resource
30 31 32 |
# File 'lib/easy_admin/permissions/role_definition.rb', line 30 def manage(resource) can([:read, :create, :update, :delete], resource) end |