29 行
619 B
Ruby
29 行
619 B
Ruby
# Canonical read-side session and BAN boundary, shared by API and storage controllers.
|
|
module RequestAccess
|
|
extend ActiveSupport::Concern
|
|
|
|
def current_user = @current_user
|
|
|
|
private
|
|
|
|
def authenticate_user
|
|
code = session[:inheritance_code]
|
|
return if code.blank?
|
|
|
|
@current_user = User.find_by(inheritance_code: code)
|
|
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
|