42 lines
1.1 KiB
Markdown
42 lines
1.1 KiB
Markdown
# DH Inspección V2 — Fase A3
|
|
|
|
## Versión
|
|
|
|
```text
|
|
v0.3.0 · Fase A3 · Guards y autorización
|
|
```
|
|
|
|
## Alcance
|
|
|
|
A3 agrega autorización declarativa y reutilizable al backend:
|
|
|
|
```ts
|
|
@RequirePermissions('users.create')
|
|
```
|
|
|
|
`PermissionsGuard` se registra globalmente después de `AccessTokenGuard`. Los
|
|
permisos se resuelven desde las relaciones `user_roles` y `role_permissions`
|
|
en cada request autenticado, por lo que los cambios futuros de A4 no dependen
|
|
de regenerar el access token.
|
|
|
|
Reglas:
|
|
|
|
- endpoint sin sesión: `401 UNAUTHORIZED`;
|
|
- sesión válida sin todos los permisos requeridos: `403 FORBIDDEN`;
|
|
- sesión con todos los permisos requeridos: acceso permitido;
|
|
- permisos de controller y handler se acumulan;
|
|
- endpoints marcados con `@Public()` no requieren permisos;
|
|
- el frontend podrá ocultar acciones, pero la autorización definitiva siempre
|
|
queda en el backend.
|
|
|
|
## Migraciones
|
|
|
|
A3 no modifica el esquema y no incluye migraciones. Utiliza la matriz de roles
|
|
y permisos creada en A1.
|
|
|
|
## Exclusiones
|
|
|
|
- endpoints administrativos de usuarios y roles: A4;
|
|
- consultas administrativas de auditoría: A5;
|
|
- login y panel web autenticado: A6.
|