Files
eminuxandCursor b88f44ab1c Completa i18n IT/EN/FR/DE/ES su sito pubblico, area autenticata e admin.
Tutte le view marketing, legali, viewer, dashboard e admin usano t(); mailer utente-facing e flash localizzati; admin con LocaleResolver e selettore lingua.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-24 00:38:50 +02:00

53 lines
1.3 KiB
Ruby

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