# US-MGN003-002: Gestion de Permisos ## Identificacion | Campo | Valor | |-------|-------| | **ID** | US-MGN003-002 | | **Modulo** | MGN-003 Roles/RBAC | | **Sprint** | Sprint 2 | | **Prioridad** | P0 - Critica | | **Story Points** | 5 | | **Estado** | Ready | | **Autor** | System | | **Fecha** | 2025-12-05 | --- ## Historia de Usuario **Como** administrador del sistema **Quiero** ver el catalogo de permisos disponibles agrupados por modulo **Para** asignar los permisos correctos a cada rol --- ## Criterios de Aceptacion ### Escenario 1: Listar permisos agrupados ```gherkin Given un admin autenticado con permiso "permissions:read" When accede a GET /api/v1/permissions Then el sistema retorna permisos agrupados por modulo And cada modulo incluye nombre y lista de permisos And cada permiso incluye code, name, description And no incluye permisos deprecados ``` ### Escenario 2: Buscar permisos ```gherkin Given 40 permisos en el sistema When el admin busca "users" Then el sistema retorna solo permisos que contienen "users" And mantiene agrupacion por modulo And la busqueda es case-insensitive ``` ### Escenario 3: Mostrar permisos en selector ```gherkin Given admin creando un nuevo rol When ve el selector de permisos Then los permisos estan agrupados por modulo And puede expandir/colapsar cada modulo And puede seleccionar multiples permisos And puede seleccionar "todos" de un modulo ``` ### Escenario 4: Wildcard en permisos ```gherkin Given un rol con permiso "users:*" When se visualizan los permisos del rol Then aparece "users:*" como seleccionado And indica que incluye todos los permisos de usuarios And los permisos individuales aparecen como "incluidos" ``` --- ## Mockup / Wireframe ``` Selector de Permisos (en modal de crear/editar rol) ┌────────────────────────────────────────────────────────────────┐ │ Buscar permisos: [________________] [Seleccionar todos] │ ├────────────────────────────────────────────────────────────────┤ │ │ │ ▼ Gestion de Usuarios (7 permisos) [☑ Todos] │ │ ┌──────────────────────────────────────────────────────────┐│ │ │ ☑ users:read - Leer usuarios ││ │ │ ☑ users:create - Crear usuarios ││ │ │ ☐ users:update - Actualizar usuarios ││ │ │ ☐ users:delete - Eliminar usuarios ││ │ │ ☐ users:activate - Activar/Desactivar usuarios ││ │ │ ☐ users:export - Exportar lista de usuarios ││ │ │ ☐ users:import - Importar usuarios ││ │ └──────────────────────────────────────────────────────────┘│ │ │ │ ▶ Roles y Permisos (6 permisos) [☐ Todos] │ │ │ │ ▶ Inventario (9 permisos) [☐ Todos] │ │ │ │ ▶ Modulo Financiero (7 permisos) [☐ Todos] │ │ │ ├────────────────────────────────────────────────────────────────┤ │ Permisos seleccionados: 2 │ └────────────────────────────────────────────────────────────────┘ ``` --- ## Notas Tecnicas ### API Endpoints ```typescript GET /api/v1/permissions?search=users // Response { "data": [ { "module": "users", "moduleName": "Gestion de Usuarios", "permissions": [ { "id": "uuid", "code": "users:read", "name": "Leer usuarios", "description": "Ver listado y detalle de usuarios" }, // ... ] } ] } ``` ### Permisos por Modulo | Modulo | Cantidad | Ejemplo | |--------|----------|---------| | auth | 2 | auth:sessions:read | | users | 7 | users:read, users:create | | roles | 6 | roles:read, roles:assign | | tenants | 3 | tenants:read | | settings | 2 | settings:update | | audit | 2 | audit:read | | reports | 4 | reports:export | | financial | 7 | financial:transactions:create | | inventory | 9 | inventory:products:read | --- ## Definicion de Done - [ ] Endpoint GET /api/v1/permissions - [ ] Busqueda por texto - [ ] Agrupacion por modulo - [ ] Frontend: PermissionSelector component - [ ] Frontend: Expand/collapse por modulo - [ ] Frontend: Seleccion multiple - [ ] Tests unitarios - [ ] Code review aprobado --- ## Estimacion | Tarea | Horas | |-------|-------| | Backend: Endpoint | 2h | | Backend: Agrupacion | 1h | | Backend: Tests | 1h | | Frontend: PermissionSelector | 5h | | Frontend: Tests | 2h | | **Total** | **11h** | --- ## Historial | Version | Fecha | Autor | Cambios | |---------|-------|-------|---------| | 1.0 | 2025-12-05 | System | Creacion inicial |