class ActionAuthorizer::Base

Attributes

current_user[R]
params[R]

Public Class Methods

authorized?(current_user, controller, action, params) click to toggle source
# File lib/generators/action_authorizer/install/templates/app/authorizers/action_authorizer/base.rb, line 16
def authorized?(current_user, controller, action, params)
  authorizer = "#{controller}_authorizer".classify.constantize.new(current_user, params)
  result = (authorizer.skip?(action) || !!current_user&.persisted?) && authorizer.respond_to?(action.to_sym) && authorizer.send(action.to_sym)
  raise ActionAuthorizer::ResultError.new(result) if [true, false].exclude?(result)
  result
end
new(current_user, params) click to toggle source
# File lib/generators/action_authorizer/install/templates/app/authorizers/action_authorizer/base.rb, line 6
def initialize(current_user, params)
  @current_user = current_user
  @params = params
end
skip_authentication(only: nil) click to toggle source
# File lib/generators/action_authorizer/install/templates/app/authorizers/action_authorizer/base.rb, line 23
def skip_authentication(only: nil)
  define_method(:skip?) do |action|
    only.blank? || [only].compact.flatten.map!(&:to_sym).include?(action.to_sym)
  end
end

Public Instance Methods

skip?(action) click to toggle source
# File lib/generators/action_authorizer/install/templates/app/authorizers/action_authorizer/base.rb, line 11
def skip?(action)
  false
end