Class: DecisionAgent::Auth::Role

Inherits:
Object
  • Object
show all
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

Class Method Details

.allObject



30
31
32
# File 'lib/decision_agent/auth/role.rb', line 30

def all
  ROLES.keys
end

.exists?(role) ⇒ Boolean

Returns:

  • (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

Returns:

  • (Boolean)


52
53
54
# File 'lib/decision_agent/auth/role.rb', line 52

def has_permission?(role, permission)
  permissions_for(role).include?(permission.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 permissions_for(role)
  role_data = ROLES[role.to_sym]
  return [] unless role_data

  role_data[:permissions]
end