This way it'll be easier to change it while checking we haven't broken existing behavior. While writing the tests, I noticed we were sometimes storing a symbol in the session while sometimes we were storing a string. So we're adding a `to_s` call so we always store a string in the session.
62 lines
1.5 KiB
Ruby
62 lines
1.5 KiB
Ruby
class Management::BaseController < ActionController::Base
|
|
include TenantVariants
|
|
include GlobalizeFallbacks
|
|
layout "management"
|
|
default_form_builder ConsulFormBuilder
|
|
|
|
before_action :verify_manager
|
|
around_action :switch_locale
|
|
|
|
helper_method :managed_user
|
|
helper_method :current_user
|
|
helper_method :manager_logged_in
|
|
|
|
private
|
|
|
|
def verify_manager
|
|
raise ActionController::RoutingError, "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)
|
|
return if managed_user.persisted? && managed_user.level_two_or_three_verified?
|
|
|
|
message = managed_user.persisted? ? alert_msg : t("management.sessions.need_managed_user")
|
|
redirect_to management_document_verifications_path, alert: message
|
|
end
|
|
|
|
def switch_locale(&action)
|
|
if params[:locale] && I18n.available_locales.include?(params[:locale].to_sym)
|
|
session[:locale] = params[:locale].to_s
|
|
end
|
|
|
|
session[:locale] ||= I18n.default_locale.to_s
|
|
|
|
I18n.with_locale(session[:locale], &action)
|
|
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
|