Class: DecisionAgent::Auth::Role
- Inherits:
-
Object
- Object
- DecisionAgent::Auth::Role
- Defined in:
- lib/decision_agent/auth/role.rb
Constant Summary collapse
- ROLES =
{ admin: { name: "Admin", permissions: i[read write delete approve deploy manage_users audit] }, editor: { name: "Editor", permissions: i[read write] }, viewer: { name: "Viewer", permissions: [:read] }, auditor: { name: "Auditor", permissions: i[read audit] }, approver: { name: "Approver", permissions: i[read approve] } }.freeze
Class Method Summary collapse
- .all ⇒ Object
- .exists?(role) ⇒ Boolean
- .has_permission?(role, permission) ⇒ Boolean
- .name_for(role) ⇒ Object
- .permissions_for(role) ⇒ Object
Class Method Details
.all ⇒ Object
30 31 32 |
# File 'lib/decision_agent/auth/role.rb', line 30 def all ROLES.keys end |
.exists?(role) ⇒ Boolean
34 35 36 |
# File 'lib/decision_agent/auth/role.rb', line 34 def exists?(role) ROLES.key?(role.to_sym) end |
.has_permission?(role, permission) ⇒ Boolean
52 53 54 |
# File 'lib/decision_agent/auth/role.rb', line 52 def (role, ) (role).include?(.to_sym) end |
.name_for(role) ⇒ Object
45 46 47 48 49 50 |
# File 'lib/decision_agent/auth/role.rb', line 45 def name_for(role) role_data = ROLES[role.to_sym] return nil unless role_data role_data[:name] end |
.permissions_for(role) ⇒ Object
38 39 40 41 42 43 |
# File 'lib/decision_agent/auth/role.rb', line 38 def (role) role_data = ROLES[role.to_sym] return [] unless role_data role_data[:permissions] end |