CL-BK-221 · Login admin com retorno para a URL originalmente solicitada
- Data de fechamento: 07/04/2026
- BK de origem: BK-221
- Responsável: codex
Resumo
Este BK corrigiu o fluxo de autenticação do admin para preservar a URL original quando um link profundo exige login. Depois da autenticação, o usuário agora volta para a tela que tentou abrir, em vez de cair sempre em admin/index.php.
Escopo Entregue
Arquivos principais
admin/data/config.php
- adicionados helpers centrais para capturar a URL atual, normalizar o destino e montar a URL de login com
redirect - validação segura aceita apenas destinos internos de
/admin/
admin/data/functions.php
checkSession()passou a redirecionar para o login com o destino original anexado- helper
admin_redirect_to_login()criado para padronizar os módulos protegidos
admin/action.php
- login passou a consumir
redirect_to - fallback continua sendo
admin/index.phpquando o destino é ausente ou inválido - erro de autenticação preserva o destino para nova tentativa
admin/login.php
- formulário de login passou a reenviar o destino original em campo oculto
admin/modulos/campanhas/bootstrap_v2.php
- fluxo do módulo novo de campanhas alinhado ao redirect central
- Módulos protegidos do admin
- os
bootstrap.phpque antes mandavam paraURL_LOGINcru agora usam o helper central - caso legado isolado de
admin/modulos/slider/slider.phptambém recebeu preservação do destino
Regras de Segurança
- Apenas rotas internas sob
/admin/são aceitas como redirect - URLs externas são descartadas
login,action.phpebloqueadosão descartados para evitar loop ou desvio indevido- Quando o destino não passa na validação, o fallback continua sendo
admin/index.php
Validações
- Sintaxe PHP
php -lexecutado em todos os arquivos PHP alterados- resultado: sem erros de sintaxe
- Smoke test do helper
admin_build_login_url()gerou corretamente:https://rionoteatro.com.br/admin/login/?redirect=%2Fadmin%2Fmodulos%2Fcampanhas%2Faprovar_squad.php%3Fid%3Dpost_1098_1775490151admin_normalize_redirect_target()preservou corretamente:/admin/modulos/campanhas/aprovar_squad.php?id=post_1098_1775490151
- Teste real no ar
- validação humana confirmada pelo admin na própria sessão
- o fluxo passou a retornar corretamente para a página profunda desejada após o login
Evidência de Segunda Opinião
opencodeconfirmou a mesma causa raiz geral:- a URL alvo era perdida antes do login
- o pós-login estava hardcoded para
admin/index.php gemininão foi utilizável nesta VPS porque o CLI estava sem autenticação configurada no ambiente da rodada
Próximos Passos
- BK concluído.
- O padrão de retorno pós-login agora está consolidado no admin e cobre tanto o fluxo clássico quanto o módulo novo de campanhas.