Module: DoRole::RoleModel

Extended by:
ActiveSupport::Concern
Defined in:
lib/do_role/concerns/role_model.rb

Instance Method Summary collapse

Instance Method Details

#add_permission(permission) ⇒ Object



24
25
26
# File 'lib/do_role/concerns/role_model.rb', line 24

def add_permission(permission)
  self.permissions = (Array(permissions) + [permission.to_s]).uniq
end

#computed_permissionsObject



33
34
35
36
37
# File 'lib/do_role/concerns/role_model.rb', line 33

def computed_permissions
  role_permissions = roles.map(&:computed_permissions).flatten
  direct_permissions = DoRole.permission_set.computed_permissions(permissions)
  (role_permissions + direct_permissions).uniq
end

#has_permission?(permission) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
21
22
# File 'lib/do_role/concerns/role_model.rb', line 18

def has_permission?(permission)
  return true if check_direct_permission(permission)
  return true if roles.any? { |role| role.has_permission?(permission) }
  false
end

#remove_permission(permission) ⇒ Object



28
29
30
31
# File 'lib/do_role/concerns/role_model.rb', line 28

def remove_permission(permission)
  return unless permission
  self.permissions = Array(permissions) - [permission.to_s]
end