Module: Hubbado::Sequence::Controls::Policy
- Defined in:
- lib/hubbado/sequence/controls/policy.rb
Defined Under Namespace
Classes: PolicyResult
Class Method Summary collapse
Class Method Details
.example_class(decision: :permit, action: :update) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/hubbado/sequence/controls/policy.rb', line 19 def self.example_class(decision: :permit, action: :update) Class.new do attr_reader :user, :record define_singleton_method(:default_decision) { decision } define_singleton_method(:default_action) { action } def self.build(user, record) new(user, record) end def initialize(user, record) @user = user @record = record end define_method(action) do decision = self.class.default_decision if decision == :permit PolicyResult.new(true, :permitted) else PolicyResult.new(false, :not_owner) end end end end |