# Modulo 3 Operacion (Usuarios, Equipos, Roles y Permisos)

## Objetivo
Operacion segura del modulo RBAC en produccion: altas/bajas de usuarios, jerarquia de equipos, permisos y auditoria.

## Flujos operativos
1. Crear usuario:
- Ir a `Usuarios`.
- Capturar nombre, email, rol y estado.
- Guardar.

2. Editar usuario:
- Modificar nombre/email/rol/status inline.
- Si el cambio es sensible (`owner/admin`) y no eres `owner`, se crea aprobacion.

3. Eliminar usuario:
- Solo `owner`.
- No permite auto-eliminacion.
- No permite eliminar al ultimo `owner`.

4. Crear equipo y jerarquia:
- Ir a `Equipos`.
- Crear equipo.
- Asignar parent (sin ciclos).
- No permite parent inexistente ni auto-parent.

5. Eliminar equipo:
- Solo `owner/admin`.
- Solo si no tiene hijos ni miembros.

6. Gestion RBAC:
- Overrides por rol/usuario/campo.
- Matriz masiva editable.
- Roles custom: crear, asignar, quitar, activar/desactivar, eliminar.
- Snapshots y rollback total/parcial.

7. Aprobaciones:
- Revisar en modulo `Aprobaciones`.
- Al aprobar `sensitive_user_role_change`, se aplica automaticamente.

8. Tokens API:
- Crear en `Dispositivos`.
- Usar `Authorization: Bearer <token>`.
- Scopes efectivos por endpoint.
- Revocar cuando termine la integracion.

9. Auditoria:
- Ver modulo `Auditoria`.
- Verificar cadena con `/api/v1/audit/verify?tenant=demo`.

## Comandos utiles
- Migrar: `php scripts/migrate.php`
- Rollback registro batch: `php scripts/rollback.php 1`
- Smoke seguridad: `php tests/security_smoke.php`
- Smoke RBAC: `php tests/rbac_regression.php 1 1`
- Smoke cierre modulo 3: `php tests/module3_closure_smoke.php`

## Politicas finales del modulo
- Eliminacion de usuarios: `owner` unicamente.
- Eliminacion de equipos: `owner/admin` y solo sin hijos/miembros.
- Cambios sensibles de rol: aprobacion requerida cuando el solicitante no es `owner`.
- Permisos por campo: se aplican en lectura y escritura de Contactos/Pipeline.
