83 lines
2.2 KiB
Markdown
83 lines
2.2 KiB
Markdown
# ADR-006: RBAC - Sistema de Permisos
|
|
|
|
**Estado:** Aceptada
|
|
**Fecha:** 2025-11-24
|
|
**Responsable:** Architecture-Analyst
|
|
**Proyecto:** ERP Construccion
|
|
|
|
## Contexto
|
|
|
|
El ERP de Construccion requiere control de acceso granular para:
|
|
- Roles de construccion: Director, Residente, Almacenista, Contador
|
|
- Permisos por proyecto/fraccionamiento
|
|
- Control de datos sensibles (presupuestos, estimaciones)
|
|
- Cumplimiento INFONAVIT
|
|
|
|
## Decision
|
|
|
|
**RBAC (Role-Based Access Control)** con:
|
|
- Roles jerarquicos (herencia)
|
|
- Permisos por recurso y accion
|
|
- RLS (Row-Level Security) en PostgreSQL
|
|
- Field-level permissions para datos sensibles
|
|
|
|
```typescript
|
|
// Roles especificos de construccion
|
|
const ROLES = {
|
|
SUPER_ADMIN: 'super_admin',
|
|
DIRECTOR_GENERAL: 'director_general',
|
|
DIRECTOR_PROYECTO: 'director_proyecto',
|
|
RESIDENTE_OBRA: 'residente_obra',
|
|
SUPERVISOR: 'supervisor',
|
|
ALMACENISTA: 'almacenista',
|
|
CONTADOR: 'contador',
|
|
DERECHOHABIENTE: 'derechohabiente', // Portal INFONAVIT
|
|
};
|
|
```
|
|
|
|
## Justificacion
|
|
|
|
### Referencia a Odoo
|
|
- ir.rule pattern para RLS
|
|
- Permisos por modelo y accion
|
|
|
|
### Referencia a Gamilit
|
|
- RBAC con herencia funcional
|
|
- RLS policies robustas
|
|
|
|
### Especifico para Construccion
|
|
- Residente solo ve sus proyectos asignados
|
|
- Director ve todos los proyectos
|
|
- Derechohabiente solo ve su vivienda
|
|
- Almacenista no ve presupuestos
|
|
|
|
## Consecuencias
|
|
|
|
### Positivas
|
|
- Control granular por rol
|
|
- Seguridad a nivel de base de datos (RLS)
|
|
- Cumplimiento regulatorio
|
|
- Audit trail completo
|
|
|
|
### Negativas
|
|
- Complejidad en gestion de permisos
|
|
- Mitigacion: UI de administracion de roles
|
|
|
|
## Implementacion
|
|
|
|
### Acciones Requeridas
|
|
- [x] Definir matriz de roles y permisos
|
|
- [x] Implementar RLS policies por rol
|
|
- [ ] UI de gestion de roles
|
|
- [ ] Field-level permissions para presupuestos
|
|
|
|
### Criterios de Aceptacion
|
|
- Residente no ve proyectos de otros
|
|
- Director ve todos los proyectos
|
|
- Derechohabiente solo ve su vivienda en portal
|
|
- Audit trail de accesos
|
|
|
|
## Referencias
|
|
- [ERP Generico ADR-006](../../erp-generic/docs/adr/ADR-006-rbac-sistema-permisos.md)
|
|
- [RF-AUTH-001-roles-construccion.md](../01-fase-alcance-inicial/MAI-001-fundamentos/requerimientos/RF-AUTH-001-roles-construccion.md)
|