# 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