module BackOffice::Policy

Public Instance Methods

authorized?(controller, action, resource = nil) click to toggle source
# File lib/back_office/policy.rb, line 3
def authorized?(controller, action, resource = nil)
  if rule = rules.dig(controller.to_sym, action.to_sym)
    rule == true || resource && rule.call(resource)
  else
    false
  end
end

Private Instance Methods

authorize(controller, *actions, &block) click to toggle source
# File lib/back_office/policy.rb, line 13
def authorize(controller, *actions, &block)
  actions.flatten.each { |action| rules[controller][action] = (block || true) }
end
rules() click to toggle source
# File lib/back_office/policy.rb, line 17
def rules
  @rules ||= Hash.new { |hash, key| hash[key] = {} }
end