Visão geral
Tombos usam tokensMiddleware em src/routes/tombos.js e if (request.usuario.tipo_usuario_id === …) em src/controllers/tombos-controller.js (rascunho se operador/identificador; APROVADO se curador). Passar para sessão + regras.
_spec/auth-and-authorization.md §9.4 e §10.1.
Fora de escopo
- Outras famílias de rotas
- Painel
- Protocolo de sync offline
Critérios de aceite
Detalhes técnicos
Auditar todos os tokensMiddleware em tombos.js e branches tipo_usuario_id no controller (create ~397–411, e outros).
Padrão:
- Rota:
authorize('create'|'update'|'read'|'export'|'approve', 'Tombo') conforme a operação.
- Use case/controller:
if (!auth.can('approve', 'Tombo')) { rascunho = true; status = 'ESPERANDO' }.
- Update: carregar tombo →
auth.can('update', 'Tombo', tombo) se createRules tiver conditions.
Exemplo de rule em createRules (ajustar ao audit):
{ action: ['update'], resource: 'Tombo', conditions: { rascunho: true } }
Exportação: authorize('export', 'Tombo').
No lugar do tipo_usuario_id atual:
// antes
if (request.usuario.tipo_usuario_id === 2 || request.usuario.tipo_usuario_id === 3) {
jsonTombo.rascunho = true
}
if (request.usuario.tipo_usuario_id === 1) status = 'APROVADO'
// depois
if (!request.auth.can('approve', 'Tombo')) {
jsonTombo.rascunho = true
status = 'ESPERANDO'
} else {
status = 'APROVADO'
}
Visão geral
Tombos usam
tokensMiddlewareemsrc/routes/tombos.jseif (request.usuario.tipo_usuario_id === …)emsrc/controllers/tombos-controller.js(rascunho se operador/identificador;APROVADOse curador). Passar para sessão + regras._spec/auth-and-authorization.md§9.4 e §10.1.Fora de escopo
Critérios de aceite
authenticate+authorize, não lista de tiposESPERANDOse não têmapproveemTomboDetalhes técnicos
Auditar todos os
tokensMiddlewareemtombos.jse branchestipo_usuario_idno controller (create ~397–411, e outros).Padrão:
authorize('create'|'update'|'read'|'export'|'approve', 'Tombo')conforme a operação.if (!auth.can('approve', 'Tombo')) { rascunho = true; status = 'ESPERANDO' }.auth.can('update', 'Tombo', tombo)secreateRulestiverconditions.Exemplo de rule em
createRules(ajustar ao audit):Exportação:
authorize('export', 'Tombo').No lugar do
tipo_usuario_idatual: