module Admin class BaseController < ActionController::Base layout "admin" protect_from_forgery with: :exception before_action :set_admin_locale before_action :require_admin_login include ::AdminHelper helper ApplicationHelper helper RecordingsArchiveHelper helper_method :current_admin_account, :admin_logged_in?, :current_locale, :language_options, :current_language_option private def set_admin_locale I18n.locale = LocaleResolver.resolve( cookie_jar: request.cookie_jar, accept_language: request.get_header("HTTP_ACCEPT_LANGUAGE") ) end def current_locale I18n.locale end def language_options LocaleResolver.language_options end def current_language_option LocaleResolver.current_language_option end def require_admin_login return if admin_logged_in? session[:admin_return_to] = request.fullpath unless request.path == admin_login_path redirect_to admin_login_path, alert: t("admin.flash.login_required") end def current_admin_account return unless session[:admin_account_id] @current_admin_account ||= AdminAccount.find_by(id: session[:admin_account_id]) end def admin_logged_in? current_admin_account.present? end end end