Class: DecisionAgent::Auth::DefaultAdapter

Inherits:
RbacAdapter
  • Object
show all
Defined in:
lib/decision_agent/auth/rbac_adapter.rb

Overview

Default adapter using the built-in User/Role/Permission system

Instance Method Summary collapse

Methods inherited from RbacAdapter

#user_email, #user_id

Instance Method Details

#active?(user) ⇒ Boolean

Returns:

  • (Boolean)


74
75
76
77
78
# File 'lib/decision_agent/auth/rbac_adapter.rb', line 74

def active?(user)
  return false unless user

  user.respond_to?(:active) ? user.active : true
end

#can?(user, permission, _resource = nil) ⇒ Boolean

Returns:

  • (Boolean)


56
57
58
59
60
61
62
63
64
65
# File 'lib/decision_agent/auth/rbac_adapter.rb', line 56

def can?(user, permission, _resource = nil)
  return false unless user
  return false unless active?(user)

  # Check if user has any role with the required permission
  roles = extract_roles(user)
  roles.any? do |role|
    Role.has_permission?(role, permission)
  end
end

#has_role?(user, role) ⇒ Boolean

Returns:

  • (Boolean)


67
68
69
70
71
72
# File 'lib/decision_agent/auth/rbac_adapter.rb', line 67

def has_role?(user, role)
  return false unless user

  roles = extract_roles(user)
  roles.include?(role.to_sym)
end