# _MAP: MGN-003 - Roles y Permisos

**Modulo:** MGN-003
**Nombre:** Roles y Permisos (RBAC)
**Fase:** 01 - Foundation
**Story Points:** 40 SP
**Estado:** Migrado GAMILIT
**Ultima actualizacion:** 2025-12-05

---

## Resumen

Sistema de control de acceso basado en roles (RBAC) que permite definir roles, permisos granulares y asignarlos a usuarios.

---

## Metricas

| Metrica | Valor |
|---------|-------|
| Story Points | 40 SP |
| Requerimientos (RF) | 4 |
| Especificaciones (ET) | 2 |
| User Stories (US) | 4 |
| Tablas DB | 4 |
| Endpoints API | 10 |

---

## Requerimientos Funcionales (4)

| ID | Archivo | Titulo | Prioridad | Estado |
|----|---------|--------|-----------|--------|
| RF-ROLE-001 | [RF-ROLE-001.md](./requerimientos/RF-ROLE-001.md) | Gestion de Roles | P0 | Migrado |
| RF-ROLE-002 | [RF-ROLE-002.md](./requerimientos/RF-ROLE-002.md) | Gestion de Permisos | P0 | Migrado |
| RF-ROLE-003 | [RF-ROLE-003.md](./requerimientos/RF-ROLE-003.md) | Asignacion Usuario-Rol | P0 | Migrado |
| RF-ROLE-004 | [RF-ROLE-004.md](./requerimientos/RF-ROLE-004.md) | Verificacion Permisos | P0 | Migrado |

**Indice:** [INDICE-RF-ROLE.md](./requerimientos/INDICE-RF-ROLE.md)

---

## Especificaciones Tecnicas (2)

| ID | Archivo | Titulo | RF Asociados | Estado |
|----|---------|--------|--------------|--------|
| ET-RBAC-001 | [ET-rbac-backend.md](./especificaciones/ET-rbac-backend.md) | Backend RBAC | RF-ROLE-001 a RF-ROLE-004 | Migrado |
| ET-RBAC-002 | [ET-RBAC-database.md](./especificaciones/ET-RBAC-database.md) | Database RBAC | RF-ROLE-001 a RF-ROLE-004 | Migrado |

---

## Historias de Usuario (4)

| ID | Archivo | Titulo | RF | SP | Estado |
|----|---------|--------|----|----|--------|
| US-MGN003-001 | [US-MGN003-001.md](./historias-usuario/US-MGN003-001.md) | Crear Rol | RF-ROLE-001 | 5 | Migrado |
| US-MGN003-002 | [US-MGN003-002.md](./historias-usuario/US-MGN003-002.md) | Asignar Permisos | RF-ROLE-002 | 8 | Migrado |
| US-MGN003-003 | [US-MGN003-003.md](./historias-usuario/US-MGN003-003.md) | Asignar Rol a Usuario | RF-ROLE-003 | 5 | Migrado |
| US-MGN003-004 | [US-MGN003-004.md](./historias-usuario/US-MGN003-004.md) | Verificar Permiso | RF-ROLE-004 | 8 | Migrado |

**Backlog:** [BACKLOG-MGN003.md](./historias-usuario/BACKLOG-MGN003.md)

---

## Implementacion

### Database

| Objeto | Tipo | Schema |
|--------|------|--------|
| roles | Tabla | core_rbac |
| permissions | Tabla | core_rbac |
| role_permissions | Tabla | core_rbac |
| user_roles | Tabla | core_rbac |
| user_has_permission | Funcion | core_rbac |
| get_user_permissions | Funcion | core_rbac |

### Backend

| Objeto | Tipo | Path |
|--------|------|------|
| RolesModule | Module | src/modules/roles/ |
| RolesService | Service | src/modules/roles/roles.service.ts |
| PermissionsService | Service | src/modules/roles/permissions.service.ts |
| RolesGuard | Guard | src/modules/roles/guards/roles.guard.ts |
| PermissionsGuard | Guard | src/modules/roles/guards/permissions.guard.ts |

### Frontend

| Objeto | Tipo | Path |
|--------|------|------|
| RolesPage | Page | src/features/roles/pages/RolesPage.tsx |
| RoleDetailPage | Page | src/features/roles/pages/RoleDetailPage.tsx |
| PermissionsPage | Page | src/features/roles/pages/PermissionsPage.tsx |

---

## Dependencias

**Depende de:** MGN-001 (Auth), MGN-002 (Users)

**Requerido por:** Todos los modulos de negocio usan permisos

---

## Trazabilidad

Ver: [TRACEABILITY.yml](./implementacion/TRACEABILITY.yml)

---

**Generado por:** Requirements-Analyst
**Fecha:** 2025-12-05
