I've moved the method to the User model in order to make it easier to test. I'm not sure where it belongs, though. There was already a failing spec in `spec/features/management_spec.rb`, but it passed if run standalone because it only failed if previous tests had already created nine users or more.
64 lines
1.4 KiB
Ruby
64 lines
1.4 KiB
Ruby
class Management::BaseController < ActionController::Base
|
|
layout 'management'
|
|
|
|
before_action :verify_manager
|
|
before_action :set_locale
|
|
|
|
helper_method :managed_user
|
|
helper_method :current_user
|
|
helper_method :manager_logged_in
|
|
|
|
private
|
|
|
|
def verify_manager
|
|
raise ActionController::RoutingError.new('Not Found') if current_manager.blank?
|
|
end
|
|
|
|
def current_manager
|
|
session[:manager]
|
|
end
|
|
|
|
def current_user
|
|
managed_user
|
|
end
|
|
|
|
def managed_user
|
|
@managed_user ||= Verification::Management::ManagedUser.find(
|
|
session[:document_type],
|
|
session[:document_number]
|
|
)
|
|
end
|
|
|
|
def check_verified_user(alert_msg)
|
|
unless managed_user.level_two_or_three_verified?
|
|
redirect_to management_document_verifications_path, alert: alert_msg
|
|
end
|
|
end
|
|
|
|
def set_locale
|
|
if params[:locale] && I18n.available_locales.include?(params[:locale].to_sym)
|
|
session[:locale] = params[:locale]
|
|
end
|
|
|
|
session[:locale] ||= I18n.default_locale
|
|
|
|
I18n.locale = session[:locale]
|
|
Globalize.locale = I18n.locale
|
|
end
|
|
|
|
def current_budget
|
|
Budget.current
|
|
end
|
|
|
|
def clear_password
|
|
session[:new_password] = nil
|
|
end
|
|
|
|
def manager_logged_in
|
|
if current_manager
|
|
@manager_logged_in = User.find_by_manager_login(session[:manager]["login"])
|
|
end
|
|
end
|
|
|
|
end
|