We use a custom auth method to pre-fill the username when reaching the RS OAuth while signed out. However, it needs to redirect back to the RS OAuth page after sign-in, and not to the root path.
45 lines
998 B
Ruby
45 lines
998 B
Ruby
class ApplicationController < ActionController::Base
|
|
rescue_from DeviseLdapAuthenticatable::LdapException do |exception|
|
|
render :text => exception, :status => 500
|
|
end
|
|
|
|
before_action :sentry_set_user
|
|
|
|
def sentry_set_user
|
|
return unless Setting.sentry_enabled
|
|
|
|
if user_signed_in?
|
|
Sentry.set_user(id: current_user.id, username: current_user.cn)
|
|
else
|
|
Sentry.set_user({})
|
|
end
|
|
end
|
|
|
|
def require_user_signed_in
|
|
unless user_signed_in?
|
|
redirect_to welcome_path and return
|
|
end
|
|
end
|
|
|
|
def require_user_signed_out
|
|
if user_signed_in?
|
|
redirect_to root_path and return
|
|
end
|
|
end
|
|
|
|
def authorize_admin
|
|
http_status :forbidden unless current_user.is_admin?
|
|
end
|
|
|
|
def http_status(status)
|
|
respond_to do |format|
|
|
format.html { render template: "shared/status_#{status.to_s}", status: status }
|
|
format.any { head status }
|
|
end
|
|
end
|
|
|
|
def after_sign_in_path_for(user)
|
|
session[:user_return_to] || root_path
|
|
end
|
|
end
|