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
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
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
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
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
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
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 |