Conn2Flow
Navegação das docs

SDD

req-089: Ocultação do Dropdown de Página por Permissão no Live Editor e Ajuste de Alerta no Hook de Admin-paginas

Exibição Incorreta de Controles de Edição para Usuários Sem Permissão: * Problema: Quando um usuário com acesso restrito tenta visualizar uma página que não lhe pertence, ele vê o…

Descrição do Problema / Contexto

Esta requisição (BATCH-089) resolve dois problemas de permissão e usabilidade relatados durante o uso com usuários de acesso restrito (isolados via hooks multi-usuário):

  1. Exibição Incorreta de Controles de Edição para Usuários Sem Permissão:

    • Problema: Quando um usuário com acesso restrito tenta visualizar uma página que não lhe pertence, ele vê o alerta de sem permissão, mas a Editbar do Live Editor continua exibindo o dropdown "Página" (com opções de Editar, Editar Avançado, Clonar, etc.) e controles de salvamento. Isso gera uma falsa impressão de que a edição está ativa ou que há um erro.

    • Comportamento Esperado: Se o usuário não tiver permissão para alterar a página atual (conforme validado pelo helper dashboard_site_toolbar_verificar_permissao_pagina), o dropdown "Página" deve ser omitido dinamicamente da Editbar, mantendo apenas os demais controles de navegação e o menu do usuário.

    • Abordagem:

      • Nos templates HTML da Editbar (dashboard-site-toolbar.html em pt-br e en), envolver o bloco do Dropdown "Página" com marcadores de comentário: <!-- dropdown-page < -->...<!-- dropdown-page > -->.

      • No backend (dashboard.php -> dashboard_site_toolbar()), verificar a permissão da página. Se o usuário não puder alterar a página, excluir o bloco usando a biblioteca de modelos: modelo_tag_del($_GESTOR['pagina'], '<!-- dropdown-page < -->', '<!-- dropdown-page > -->'). Caso tenha permissão, apenas remova os marcadores de comentário com str_replace para exibir o dropdown normalmente.

  2. Alerta Falso no Hook Multi-usuário de /admin-paginas/:

    • Problema: Ao acessar páginas permitidas (que pertencem ao próprio usuário) no módulo /admin-paginas/, o sistema exibe continuamente o alerta Você não tem permissão para acessar este local., embora o CRUD funcione. O alerta deve ser exclusivo para tentativas de acesso a páginas de terceiros.

    • Comportamento Esperado: Ajustar o hook em conn2flow-site (admin-paginas.hooks.php e arquivos relacionados) para que a validação de propriedade seja correta:

      • O alerta Você não tem permissão para acessar este local. só deve ser acionado se o usuário tentar visualizar, editar ou clonar um ID de página que realmente não lhe pertence.

      • Nesse caso de violação de acesso, o usuário deve ser redirecionado para a listagem do módulo /admin-paginas/ exibindo o alerta correspondente.


Proposta de Alterações Detalhada

1. Ocultação Dinâmica do Dropdown "Página" na Editbar

  • Nos templates HTML (gestor/modulos/dashboard/resources/{pt-br,en}/pages/dashboard-site-toolbar/dashboard-site-toolbar.html):

    • Envolver o elemento #c2f-page-dropdown com os comentários delimitadores <!-- dropdown-page < --> e <!-- dropdown-page > -->.

  • No PHP (gestor/modulos/dashboard/dashboard.php - dashboard_site_toolbar):

    • Carregar os campos id_usuarios e publisher_id ao consultar a página atual ($pagina_atual).

    • Validar a permissão chamando dashboard_site_toolbar_verificar_permissao_pagina($pagina_atual).

    • Se o retorno for falso, invocar modelo_tag_del() para remover o dropdown de página do HTML da Editbar.

    • Se for verdadeiro, remover as tags de comentários com str_replace.

2. Correção de Alerta de Permissão em admin-paginas.hooks.php

  • No projeto (conn2flow-site -> gestor/project/hooks/controllers/admin-paginas.hooks.php):

    • Revisar a lógica nos hooks de formulário e pre-banco (editar.parametros, editar.pre-banco).

    • Certificar-se de que a validação de propriedade do registro (id_usuarios da página comparado com o do usuário logado) só aciona o redirecionamento e a mensagem de erro quando houver uma tentativa real de acessar um registro não pertencente ao usuário.

    • Impedir que acessos legítimos disparem a variável global de mensagem ou alertas de erro.


Validação e Testes

  1. Validação de Sintaxe:

    • Executar php -l nos arquivos modificados.

    • Executar npm run test e composer test para garantir que não haja regressão no core.

  2. Validação Visual e Manual:

    • Logar com um usuário de plano restrito, abrir o site e acessar uma página pertencente a outro usuário: confirmar que a Editbar não mostra o dropdown "Página", mas exibe o menu do usuário e demais navegações.

    • Acessar uma página própria e verificar se o dropdown "Página" é renderizado normalmente com todas as opções.

    • No painel de administração (/admin-paginas/), gerenciar e editar registros de páginas do próprio usuário e certificar-se de que nenhum alerta de falta de permissão é exibido incorretamente na tela.

    • Tentar forçar o URL de edição de uma página de outro usuário (ex: /admin-paginas/editar/?id=ID_DE_OUTRO) e validar se ocorre o redirecionamento para /admin-paginas/ acompanhado do alerta de sem permissão.

O Futuro é Híbrido: Humano + IA.

O Conn2Flow é a ferramenta. Se você precisa do Arquiteto para desenhar a estratégia da sua empresa usando essa tecnologia...

Contrate Consultoria Especializada