Files
Reem-Notas/app/controllers/application_controller.rb

36 lines
1.0 KiB
Ruby

# app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
include Pundit::Authorization
include Pagy::Backend
before_action :authenticate_user!
before_action :set_tema
before_action :preparar_splash
# Pundit: redireciona se não autorizado
rescue_from Pundit::NotAuthorizedError do |e|
flash[:alert] = "Você não tem permissão para realizar esta ação."
redirect_to root_path
end
private
def set_tema
@tema = current_user&.tema_preferido || 'dark'
end
# Mostra a animação de abertura uma única vez, na primeira página HTML após o
# login. O flag é gravado em #after_sign_in_path_for (Devise) e nos logins do
# motorista (PIN/QR); aqui ele é lido e apagado (one-shot).
def preparar_splash
return unless request.get? && request.format.html?
@mostrar_splash = session.delete(:mostrar_splash)
end
def after_sign_in_path_for(resource)
session[:mostrar_splash] = true
resource.motorista? ? motorista_dashboard_path : dashboard_path
end
end