Files
nairobi/app/controllers/management/base_controller.rb
Javier Martín 157cd001d5 Add spec to expose a bug finding manager logged in
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.
2018-07-28 22:03:33 +02:00

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