Cerebro Studio · Backlog · Changelog
RioNoTeatro • /www/wwwroot/rionoteatro.com.br/docs/BACKLOG.md
Abrir Studio Projeto externo em modo read-only; encaminhamento permitido, escrita bloqueada.

Backlog Unificado

Projeto: RioNoTeatro. Fonte principal: /www/wwwroot/rionoteatro.com.br/docs/BACKLOG.md.

Modo read-only: ações de escrita ficam disponíveis apenas para o Cérebro.

Sem itens pendentes em /www/wwwroot/rionoteatro.com.br/docs/BACKLOG.md.

Especificações Disponíveis (fora da fila pendente)

Detalhe do BK Selecionado

/www/wwwroot/rionoteatro.com.br/docs/backlog/BK-221-login-admin-redirect-pos-login.md • 2026-04-07T03:07:42.432Z

BK-221 - Login admin com retorno para a URL originalmente solicitada

Contexto

  • Links profundos do admin estavam perdendo o destino original quando o usuário não estava autenticado.
  • Exemplo reportado: admin/modulos/campanhas/aprovar_squad.php?id=post_1098_1775490151.
  • O fluxo atual sempre terminava em admin/index.php após login bem-sucedido.

Objetivo da rodada

  • Fazer o login do admin lembrar a URL originalmente solicitada.
  • Tornar esse comportamento padrão nos pontos do admin que hoje só redirecionam para URL_LOGIN.
  • Manter validação segura do destino para evitar redirect externo.

Escopo técnico

  • admin/data/config.php
  • admin/data/functions.php
  • admin/action.php
  • admin/login.php
  • admin/modulos/campanhas/bootstrap_v2.php
  • módulos bootstrap.php do admin que protegiam acesso com URL_LOGIN
  • admin/modulos/slider/slider.php

Estratégia aplicada

  1. Criar helper central para:
  • capturar a URL atual;
  • normalizar e validar destinos internos de /admin/;
  • gerar a URL de login com redirect=....
  1. Trocar os guardas de autenticação do admin para usar esse helper.
  2. Fazer o formulário de login reenviar redirect_to.
  3. Fazer o action.php usar esse destino no sucesso e preservá-lo no erro.

Segurança

  • O redirect só aceita destinos internos de /admin/.
  • URLs externas, login, action.php e bloqueado são descartadas.
  • Fallback padrão continua sendo admin/index.php.

Validação executada

  • php -l em todos os arquivos PHP alterados.
  • Revisão do diff para confirmar que nenhum fluxo de logout foi alterado indevidamente.

Evidências

  • Validação local concluída em 2026-04-06:
  • php -l ok em todos os arquivos PHP alterados desta rodada.
  • diff revisado para manter logout fora do escopo.
  • smoke test do helper ok:
  • admin_build_login_url() gerou https://rionoteatro.com.br/admin/login/?redirect=%2Fadmin%2Fmodulos%2Fcampanhas%2Faprovar_squad.php%3Fid%3Dpost_1098_1775490151
  • admin_normalize_redirect_target() preservou /admin/modulos/campanhas/aprovar_squad.php?id=post_1098_1775490151
  • Segunda opinião externa:
  • opencode confirmou a mesma causa raiz geral: destino perdido antes do login e redirect final hardcoded.
  • gemini não pôde ser usado nesta VPS porque o CLI está sem autenticação configurada no ambiente atual.
  • Validação humana no ar concluída em 2026-04-07:
  • link profundo do admin abriu o login quando não havia sessão;
  • após autenticar, o usuário retornou corretamente para a URL originalmente solicitada.

Fechamento