Class: AccessPolicy::PolicyCheck
- Inherits:
-
Object
- Object
- AccessPolicy::PolicyCheck
- Defined in:
- lib/access_policy/policy_check.rb
Instance Attribute Summary collapse
-
#default_error_policy ⇒ Object
Returns the value of attribute default_error_policy.
-
#scope_storage ⇒ Object
Returns the value of attribute scope_storage.
Instance Method Summary collapse
- #authorize(object_to_guard, action_to_guard, error_policy: default_error_policy) ⇒ Object
- #current_user_or_role_for_policy ⇒ Object
- #current_user_or_role_for_policy=(new_user) ⇒ Object
-
#initialize(default_error_policy: ->(*) { raise }, scope_storage: ScopedStorage::ThreadLocalStorage) ⇒ PolicyCheck
constructor
A new instance of PolicyCheck.
- #policy_authorize_called=(new_value) ⇒ Object
- #policy_authorize_called? ⇒ Boolean
- #policy_for(object_or_class, error_policy = default_error_policy) ⇒ Object
- #with_user_or_role(new_current_user_or_role_for_policy, error_policy = default_error_policy) ⇒ Object
Constructor Details
#initialize(default_error_policy: ->(*) { raise }, scope_storage: ScopedStorage::ThreadLocalStorage) ⇒ PolicyCheck
Returns a new instance of PolicyCheck.
7 8 9 10 11 12 |
# File 'lib/access_policy/policy_check.rb', line 7 def initialize(default_error_policy: ->(*) { raise }, scope_storage: ScopedStorage::ThreadLocalStorage) self.default_error_policy = default_error_policy self.scope_storage = scope_storage end |
Instance Attribute Details
#default_error_policy ⇒ Object
Returns the value of attribute default_error_policy.
5 6 7 |
# File 'lib/access_policy/policy_check.rb', line 5 def default_error_policy @default_error_policy end |
#scope_storage ⇒ Object
Returns the value of attribute scope_storage.
5 6 7 |
# File 'lib/access_policy/policy_check.rb', line 5 def scope_storage @scope_storage end |
Instance Method Details
#authorize(object_to_guard, action_to_guard, error_policy: default_error_policy) ⇒ Object
15 16 17 18 19 |
# File 'lib/access_policy/policy_check.rb', line 15 def (object_to_guard, action_to_guard, error_policy: default_error_policy) PolicyEnforcer.new(current_user_or_role_for_policy, object_to_guard, action_to_guard).(error_policy) do self.=true end end |
#current_user_or_role_for_policy ⇒ Object
42 43 44 |
# File 'lib/access_policy/policy_check.rb', line 42 def current_user_or_role_for_policy scope['current_user_or_role_for_policy'] end |
#current_user_or_role_for_policy=(new_user) ⇒ Object
38 39 40 |
# File 'lib/access_policy/policy_check.rb', line 38 def current_user_or_role_for_policy=(new_user) scope['current_user_or_role_for_policy'] = new_user end |
#policy_authorize_called=(new_value) ⇒ Object
46 47 48 |
# File 'lib/access_policy/policy_check.rb', line 46 def (new_value) scope['policy_authorize_called'] = new_value end |
#policy_authorize_called? ⇒ Boolean
50 51 52 |
# File 'lib/access_policy/policy_check.rb', line 50 def !! end |
#policy_for(object_or_class, error_policy = default_error_policy) ⇒ Object
21 22 23 |
# File 'lib/access_policy/policy_check.rb', line 21 def policy_for(object_or_class, error_policy = default_error_policy) PolicyEnforcer.new(current_user_or_role_for_policy, object_or_class).policy(error_policy) end |
#with_user_or_role(new_current_user_or_role_for_policy, error_policy = default_error_policy) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/access_policy/policy_check.rb', line 25 def with_user_or_role(new_current_user_or_role_for_policy, error_policy = default_error_policy) self. = false switched_user_or_role(new_current_user_or_role_for_policy) do begin yield if block_given? raise(AccessPolicy::AuthorizeNotCalledError, "#{new_current_user_or_role_for_policy}") unless rescue => e error_policy.call(e) end end end |