Skip to content

TDD — Ações da Home (visibilidade e execução)

Planejado

Padronizar como as ações da aba Home/Ações são:

  • exibidas na UI;
  • autorizadas no backend;
  • diferenciadas entre leitura, escrita e sem acesso.
  • visible = roleEligible(minRole) AND matrix>=READ
  • canRead = matrix>=READ
  • canWrite = matrix==FULL
NívelExibe açãoPermite leituraPermite escrita
NONENãoNãoNão
READSimSimNão
FULLSimSimSim
  • minRole/minHierarchyLevel: catálogo de papéis do ministério;
  • catálogo de acesso: platform/ministrys/{ministryId}/data/access_catalog/current (resource/action + nomes amigáveis);
  • matrix: platform/ministrys/{ministryId}/data/access_matrix/current (nível por papel).

As ações da Home não são cadastradas somente na matrix.

Modelo oficial:

  1. Catálogo da Home (frontend) define presença/ordem/rota da ação.
  2. Catálogo de acesso (BD) define resourceId/actionId e nomes amigáveis.
  3. Matrix (BD) define accessLevelCode por papel.

Sem item no catálogo de acesso, a ação não deve ser exibida para usuários finais.

Mapeamento inicial (HomeAction -> Matrix key)

Section titled “Mapeamento inicial (HomeAction -> Matrix key)”
HomeAction IDresourceIdactionIdTipo
open_profileUSER_PROFILEGETleitura
register_attendanceATTENDANCEREGISTERescrita
my_lessonsLESSONLISTleitura
fill_ebd_reportEBDFILL_REPORTescrita
ebd_sessions_reportEBDSESSIONS_REPORTleitura
classes_reportLESSONCLASSES_REPORTleitura
manage_access_matrixACCESS_MATRIXGET/UPDATEleitura+escrita
  1. Serviço de ações da Home deve combinar minRole com resultado da matriz.
  2. Ação com READ e sem FULL pode abrir tela em modo leitura (quando aplicável).
  3. Toda escrita deve passar por backend com validação de matriz.
  4. Ações ainda em Firestore direto devem migrar para gateway/backend.
  • Usuário com NONE não vê ação e backend bloqueia.
  • Usuário com READ vê ação e consegue apenas leitura.
  • Usuário com FULL vê ação e consegue escrita.
  • Logs/auditoria registram bloqueios por FORBIDDEN_ACCESS_LEVEL.
  • UI da Home e da Gestão de Permissões exibem somente nomes amigáveis vindos do backend.
  • docs/architecture/adrs/adr-0024-controle-de-visibilidade-de-acoes-por-perfil.md
  • docs/architecture/adrs/adr-0026-gestao-central-de-acesso-por-perfil-no-ministerio.md
  • docs/architecture/tdd/api/tdd-gestao-acesso-ministerio.md