class ViewModel::AccessControl::Composed
def detect_veto(env, checkers)
def detect_veto(env, checkers) checkers.each do |checker| result = checker.check(env) next unless result error = if result.is_a?(StandardError) result else checker.error_type.new('Action not permitted because: ' + checker.reason, env.view.blame_reference) end # short-circuit exit with failure return true, error end return false, nil end