module Porteiro

Constants

AuthorizationNotPerformed
UnauthorizedAction
VERSION

Public Instance Methods

authorize!(other_action_name=nil) click to toggle source
# File lib/porteiro.rb, line 12
def authorize!(other_action_name=nil)
  policy_authorized!
  policy        = porteiro_policy
  policy_action = porteiro_action(other_action_name)
  unless policy.public_send(policy_action)
    error = UnauthorizedAction.new("#{policy.class}: #{policy_action}")
    error.user, error.policy, error.context = porteiro_user, policy, policy_action
    raise error
  end
  true
end
policy_authorized!() click to toggle source
# File lib/porteiro.rb, line 48
def policy_authorized!
  @_porteiro_policy_authorized = true
end
porteiro_action(other_action_name=nil) click to toggle source
# File lib/porteiro.rb, line 32
def porteiro_action(other_action_name=nil)
  name = other_action_name || action_name
  [name.to_s, '?'].join
end
porteiro_default_policy() click to toggle source
# File lib/porteiro.rb, line 37
def porteiro_default_policy
end
porteiro_policy() click to toggle source
# File lib/porteiro.rb, line 24
def porteiro_policy
  PolicyFinder.call(
    self, 
    porteiro_user, 
    porteiro_default_policy
  )
end
porteiro_user() click to toggle source
# File lib/porteiro.rb, line 40
def porteiro_user
  current_user
end
verify_authorized() click to toggle source
# File lib/porteiro.rb, line 44
def verify_authorized
  raise AuthorizationNotPerformed unless @_porteiro_policy_authorized
end