Class: DecisionAgent::Auth::RbacAdapter
- Inherits:
-
Object
- Object
- DecisionAgent::Auth::RbacAdapter
- Defined in:
- lib/decision_agent/auth/rbac_adapter.rb
Overview
Base adapter interface for RBAC integration Users can extend this to integrate with any authentication/authorization system
Direct Known Subclasses
CustomAdapter, DefaultAdapter, DeviseCanCanAdapter, PunditAdapter
Instance Method Summary collapse
-
#active?(user) ⇒ Boolean
Check if a user is active/enabled.
-
#can?(user, permission, resource = nil) ⇒ Boolean
Check if a user has a specific permission.
-
#has_role?(user, role) ⇒ Boolean
Check if a user has a specific role.
-
#user_email(user) ⇒ String?
Get user email for display/logging purposes.
-
#user_id(user) ⇒ String, Integer
Get user ID for audit/logging purposes.
Instance Method Details
#active?(user) ⇒ Boolean
Check if a user is active/enabled
28 29 30 31 32 33 |
# File 'lib/decision_agent/auth/rbac_adapter.rb', line 28 def active?(user) return false unless user # Default implementation - can be overridden user.respond_to?(:active?) ? user.active? : true end |
#can?(user, permission, resource = nil) ⇒ Boolean
Check if a user has a specific permission
13 14 15 |
# File 'lib/decision_agent/auth/rbac_adapter.rb', line 13 def can?(user, , resource = nil) raise NotImplementedError, "Subclasses must implement #can?" end |
#has_role?(user, role) ⇒ Boolean
Check if a user has a specific role
21 22 23 |
# File 'lib/decision_agent/auth/rbac_adapter.rb', line 21 def has_role?(user, role) raise NotImplementedError, "Subclasses must implement #has_role?" end |
#user_email(user) ⇒ String?
Get user email for display/logging purposes
47 48 49 50 51 |
# File 'lib/decision_agent/auth/rbac_adapter.rb', line 47 def user_email(user) return nil unless user user.respond_to?(:email) ? user.email : nil end |
#user_id(user) ⇒ String, Integer
Get user ID for audit/logging purposes
38 39 40 41 42 |
# File 'lib/decision_agent/auth/rbac_adapter.rb', line 38 def user_id(user) return nil unless user user.respond_to?(:id) ? user.id : user.to_s end |