Class: Usps::Support::Policy::AdminContext
- Inherits:
-
Object
- Object
- Usps::Support::Policy::AdminContext
- Defined in:
- app/models/usps/support/policy/admin_context.rb
Overview
Pundit user context that carries both the current user and any active impersonation session, so policies can distinguish the acting admin from the impersonated member.
Instance Attribute Summary collapse
-
#impersonate ⇒ Object
readonly
Returns the value of attribute impersonate.
-
#user ⇒ Object
readonly
Returns the value of attribute user.
Instance Method Summary collapse
- #admin? ⇒ Boolean
-
#initialize(user, impersonate) ⇒ AdminContext
constructor
A new instance of AdminContext.
Constructor Details
#initialize(user, impersonate) ⇒ AdminContext
Returns a new instance of AdminContext.
10 11 12 13 |
# File 'app/models/usps/support/policy/admin_context.rb', line 10 def initialize(user, impersonate) @user = user @impersonate = impersonate end |
Instance Attribute Details
#impersonate ⇒ Object (readonly)
Returns the value of attribute impersonate.
8 9 10 |
# File 'app/models/usps/support/policy/admin_context.rb', line 8 def impersonate @impersonate end |
#user ⇒ Object (readonly)
Returns the value of attribute user.
8 9 10 |
# File 'app/models/usps/support/policy/admin_context.rb', line 8 def user @user end |
Instance Method Details
#admin? ⇒ Boolean
15 16 17 |
# File 'app/models/usps/support/policy/admin_context.rb', line 15 def admin? (impersonate&.fetch('impersonated', nil).present? ? original : user).admin? end |