Cerebro Studio · Backlog · Changelog
RioNoTeatro • /www/wwwroot/rionoteatro.com.br/docs/changelog/CL-BK-221-login-admin-redirect-pos-login.md • 2026-04-07T03:06:13.431Z

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

  1. 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/
  1. 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
  1. admin/action.php
  • login passou a consumir redirect_to
  • fallback continua sendo admin/index.php quando o destino é ausente ou inválido
  • erro de autenticação preserva o destino para nova tentativa
  1. admin/login.php
  • formulário de login passou a reenviar o destino original em campo oculto
  1. admin/modulos/campanhas/bootstrap_v2.php
  • fluxo do módulo novo de campanhas alinhado ao redirect central
  1. Módulos protegidos do admin
  • os bootstrap.php que antes mandavam para URL_LOGIN cru agora usam o helper central
  • caso legado isolado de admin/modulos/slider/slider.php também recebeu preservação do destino

Regras de Segurança

  1. Apenas rotas internas sob /admin/ são aceitas como redirect
  2. URLs externas são descartadas
  3. login, action.php e bloqueado são descartados para evitar loop ou desvio indevido
  4. Quando o destino não passa na validação, o fallback continua sendo admin/index.php

Validações

  1. Sintaxe PHP
  • php -l executado em todos os arquivos PHP alterados
  • resultado: sem erros de sintaxe
  1. 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_1775490151
  • admin_normalize_redirect_target() preservou corretamente:
  • /admin/modulos/campanhas/aprovar_squad.php?id=post_1098_1775490151
  1. 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

  • opencode confirmou a mesma causa raiz geral:
  • a URL alvo era perdida antes do login
  • o pós-login estava hardcoded para admin/index.php
  • gemini nã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.