class ApplicationController < ActionController::API before_action :reject_banned_ip_address! before_action :authenticate_user before_action :reject_banned_user! def current_user = @current_user private def authenticate_user code = request.headers['X-Transfer-Code'] || request.headers['HTTP_X_TRANSFER_CODE'] return if code.blank? @current_user = User.find_by(inheritance_code: code) end def bool? key, default: false return default if params[key].nil? s = params[key].to_s.strip.downcase if default !(s.in?(['0', 'false', 'off', 'no'])) else s.in?(['', '1', 'true', 'on', 'yes']) end end def reject_banned_ip_address! ip_address = IpAddress.find_by(ip_address: IPAddr.new(request.remote_ip).hton) return unless ip_address&.banned? head :forbidden end def reject_banned_user! return unless current_user&.banned? head :forbidden end end