module ActionAuthorization

Constants

VERSION

Public Class Methods

included(base) click to toggle source
# File lib/action_authorization.rb, line 7
def self.included(base)
  base.class_eval do
    helper_method :policy
  end
end

Protected Instance Methods

authorize(object, action: action_name, policy_class: nil) click to toggle source
# File lib/action_authorization.rb, line 15
def authorize(object, action: action_name, policy_class: nil)
  if policy(object, policy_class).send("#{action}?")
    object
  else
    raise ActionAuthorization::AuthorizationFailure
  end
end
policy(object, policy_class = nil) click to toggle source
# File lib/action_authorization.rb, line 23
def policy(object, policy_class = nil)
  (policy_class || policy_class_for(object)).new(current_user, object)
end
policy_class_for(object) click to toggle source
# File lib/action_authorization.rb, line 27
def policy_class_for(object)
  "#{object.class.name}Policy".constantize
end