module Banken

Constants

VERSION

Public Class Methods

loyalty!(controller_name, user, record=nil) click to toggle source
# File lib/banken.rb, line 28
def loyalty!(controller_name, user, record=nil)
  LoyaltyFinder.new(controller_name).loyalty!.new(user, record)
end

Public Instance Methods

authorize!(record=nil) click to toggle source
# File lib/banken.rb, line 33
def authorize!(record=nil)
  @_banken_authorization_performed = true

  loyalty = loyalty(record)
  unless loyalty.public_send(banken_query_name)
    raise NotAuthorizedError.new(controller: banken_controller_name, query: banken_query_name, loyalty: loyalty)
  end

  true
end
banken_authorization_performed?() click to toggle source
# File lib/banken.rb, line 66
def banken_authorization_performed?
  !!@_banken_authorization_performed
end
banken_loyalty_authorized?() click to toggle source

@deprecated Use banken_authorization_performed? instead.

# File lib/banken.rb, line 71
def banken_loyalty_authorized?
  ActiveSupport::Deprecation.warn('banken_loyalty_authorized? is deprecated, use banken_authorization_performed? instead.')
  banken_authorization_performed?
end
banken_user() click to toggle source
# File lib/banken.rb, line 54
def banken_user
  current_user
end
loyalty(record=nil, controller_name=nil) click to toggle source
# File lib/banken.rb, line 49
def loyalty(record=nil, controller_name=nil)
  controller_name = banken_controller_name unless controller_name
  Banken.loyalty!(controller_name, banken_user, record)
end
permitted_attributes(record) click to toggle source
# File lib/banken.rb, line 44
def permitted_attributes(record)
  name = record.class.to_s.demodulize.underscore
  params.require(name).permit(loyalty(record).permitted_attributes)
end
skip_authorization() click to toggle source
# File lib/banken.rb, line 58
def skip_authorization
  @_banken_authorization_performed = true
end
verify_authorized() click to toggle source
# File lib/banken.rb, line 62
def verify_authorized
  raise AuthorizationNotPerformedError unless banken_authorization_performed?
end

Private Instance Methods

banken_action_name() click to toggle source
# File lib/banken.rb, line 78
def banken_action_name
  params[:action]
end
banken_controller_name() click to toggle source
# File lib/banken.rb, line 82
def banken_controller_name
  params[:controller]
end
banken_query_name() click to toggle source
# File lib/banken.rb, line 86
def banken_query_name
  "#{banken_action_name}?"
end