id: "REQ-275" title: "Visibilidade e link direto privado nas páginas (admin-paginas e publisher-pages)" status: "implemented-pending-homologation" date: "2026-10-15" author: "executor" target_repo: "conn2flow" batch: "BATCH-284" topology: "dupla" autonomy: "autonomo_monitorado" release: "gestor-v3.0.4 (junto com a req-274)"
req-275: Visibilidade e link direto privado nas páginas
1. Pedido do Humano (15/10/2026, resumido)
Nos dois módulos que criam páginas — admin-paginas e publisher-pages (publicador de páginas):
-
"Sem permissão / acesso público" passa a vir marcado por padrão ao adicionar (o controle continua o mesmo; só muda o padrão).
-
Nova linha "Visibilidade", entre "Tipo" e "Agendamento e datas", como a do
subscriptions-plansdo site (REQ-129): "Visível publicamente" (ligado por padrão) e o link direto privado com hash, com Copiar e Gerar novo link. Desligado, a página só abre pelo link — mesmo sendo de acesso público. -
Vai na release 3.0.4, junto com a req-274.
2. Regras (decididas pelo executor, informadas ao Humano)
-
Coluna
paginas.visivel(1 = visível; padrão 1, inclusive para as páginas existentes) epaginas.hash_privado(32 hex, único). -
Página com
visivel = 0no site: abre só com?acesso=<hash>correto; quem abre pelo link fica liberado na sessão para aquela página (navegação e AJAX). Sem isso: 404 (não revela que existe). Usuário logado com acesso aoadmin-paginasou aopublisher-pagescontinua vendo. -
A visibilidade é independente do "sem permissão": página restrita a login continua exigindo login também pelo link.
-
Página não visível sai das listagens públicas (sitemap e índices).
-
"Gerar novo link" troca o hash no salvamento normal do formulário (com o token do formulário), como na REQ-129; o link antigo deixa de funcionar.
-
O parâmetro é
?acesso=, não?hash=, para não colidir com o checkout de planos privados do site.
3. Aceite
-
[x] Adicionar nos dois módulos: "sem permissão" marcado e "visível" marcado por padrão; hash gerado na criação.
-
[x] Editar/clonar: estado gravado, link absoluto exibido, Copiar e Gerar novo link.
-
[x] Site: página visível abre normalmente; não visível dá 404 sem o link e abre com o link; link antigo para de funcionar após gerar novo.
-
[x] Páginas existentes seguem visíveis depois da migração.
-
[x] PHPUnit (funções puras + contrato), Lab com pipeline, conferência no navegador.