2014-08-01 02:23:47 -07:00
|
|
|
class ApplicationController < ActionController::Base
|
|
|
|
# Prevent CSRF attacks by raising an exception.
|
|
|
|
# For APIs, you may want to use :null_session instead.
|
|
|
|
protect_from_forgery with: :exception
|
2015-05-05 09:09:26 -07:00
|
|
|
|
2014-08-01 06:27:08 -07:00
|
|
|
before_filter :configure_permitted_parameters, if: :devise_controller?
|
2015-01-12 13:44:13 -08:00
|
|
|
before_filter :banned?
|
|
|
|
|
|
|
|
# check if user got hit by the banhammer of doom
|
|
|
|
def banned?
|
|
|
|
if current_user.present? && current_user.banned?
|
|
|
|
name = current_user.screen_name
|
|
|
|
# obligatory '2001: A Space Odyssey' reference
|
|
|
|
flash[:notice] = "I'm sorry, #{name}, I'm afraid I can't do that."
|
2015-05-05 09:09:26 -07:00
|
|
|
unless current_user.ban_reason.nil?
|
2015-04-22 17:56:29 -07:00
|
|
|
flash[:notice] += "\nBan reason: #{current_user.ban_reason}"
|
|
|
|
end
|
|
|
|
if not current_user.permanently_banned?
|
|
|
|
# TODO format banned_until
|
|
|
|
flash[:notice] += "\nBanned until: #{current_user.banned_until}"
|
|
|
|
end
|
2015-01-12 13:44:13 -08:00
|
|
|
sign_out current_user
|
|
|
|
redirect_to new_user_session_path
|
|
|
|
end
|
|
|
|
end
|
2014-12-28 12:14:10 -08:00
|
|
|
|
|
|
|
include ApplicationHelper
|
|
|
|
|
2014-08-01 06:27:08 -07:00
|
|
|
protected
|
|
|
|
|
|
|
|
def configure_permitted_parameters
|
|
|
|
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:screen_name, :email, :password, :password_confirmation, :remember_me) }
|
|
|
|
devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:login, :screen_name, :email, :password, :remember_me) }
|
|
|
|
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:screen_name, :email, :password, :password_confirmation, :current_password) }
|
|
|
|
end
|
2014-08-01 02:23:47 -07:00
|
|
|
end
|