Class: Hubbado::Sequence::Macros::Policy::Check
- Inherits:
-
Object
- Object
- Hubbado::Sequence::Macros::Policy::Check
- Defined in:
- lib/hubbado/sequence/macros/policy/check.rb
Defined Under Namespace
Modules: Substitute
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.build ⇒ Object
9 10 11 |
# File 'lib/hubbado/sequence/macros/policy/check.rb', line 9 def self.build new end |
Instance Method Details
#call(ctx, policy, action, record_key = nil, as: nil) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/hubbado/sequence/macros/policy/check.rb', line 21 def call(ctx, policy, action, record_key = nil, as: nil) as ||= :policy current_user = ctx[:current_user] record = record_key && ctx[record_key] policy_instance = policy.build(current_user, record) ctx[as] = policy_instance policy_result = policy_instance.public_send(action) if policy_result.permitted? Result.success(ctx) else self.class.failure(ctx, policy_instance, policy_result) end end |