164 lines
4.5 KiB
Markdown
164 lines
4.5 KiB
Markdown
# US-MMD001-002: Configurar Roles de Taller
|
|
|
|
## Metadata
|
|
|
|
| Campo | Valor |
|
|
|-------|-------|
|
|
| **ID** | US-MMD001-002 |
|
|
| **Epica** | EPIC-MMD-001 - Fundamentos |
|
|
| **Modulo** | fundamentos |
|
|
| **Prioridad** | P0 |
|
|
| **Story Points** | 5 |
|
|
| **Sprint** | Sprint 1 |
|
|
| **Estado** | Backlog |
|
|
| **Asignado a** | Por asignar |
|
|
|
|
---
|
|
|
|
## Historia de Usuario
|
|
|
|
**Como** administrador del taller,
|
|
**quiero** configurar roles especificos para mi negocio (mecanico, almacenista, recepcion, jefe de taller),
|
|
**para** asignar permisos apropiados a cada tipo de empleado.
|
|
|
|
## Descripcion Detallada
|
|
|
|
El sistema debe ofrecer roles predefinidos tipicos de un taller diesel, pero permitir personalizacion. Cada rol tiene permisos especificos sobre modulos y acciones del sistema.
|
|
|
|
---
|
|
|
|
## Criterios de Aceptacion
|
|
|
|
**Escenario 1: Roles predefinidos disponibles**
|
|
```gherkin
|
|
DADO que accedo a la configuracion de roles
|
|
CUANDO veo la lista de roles
|
|
ENTONCES veo los roles predefinidos:
|
|
| Rol | Descripcion |
|
|
| AdminTaller | Acceso completo al taller |
|
|
| JefeTaller | Supervisa operaciones y asigna trabajos |
|
|
| MecanicoDiesel | Ejecuta diagnosticos y reparaciones |
|
|
| Almacenista | Gestiona inventario de refacciones |
|
|
| Recepcionista | Atiende clientes y crea ordenes |
|
|
| Contador | Accede a reportes y facturacion |
|
|
```
|
|
|
|
**Escenario 2: Ver permisos de un rol**
|
|
```gherkin
|
|
DADO que selecciono el rol "MecanicoDiesel"
|
|
CUANDO veo sus permisos
|
|
ENTONCES veo los modulos y acciones permitidas:
|
|
| Modulo | Permisos |
|
|
| Ordenes | Ver asignadas, actualizar avance |
|
|
| Diagnosticos | Crear, editar, ver |
|
|
| Refacciones | Solicitar, ver stock |
|
|
| Vehiculos | Ver historial |
|
|
```
|
|
|
|
**Escenario 3: Modificar permisos de rol**
|
|
```gherkin
|
|
DADO que selecciono el rol "Recepcionista"
|
|
CUANDO agrego el permiso "Ver reportes basicos"
|
|
ENTONCES el sistema guarda el cambio
|
|
Y los usuarios con ese rol tienen el nuevo permiso
|
|
```
|
|
|
|
**Escenario 4: Crear rol personalizado**
|
|
```gherkin
|
|
DADO que necesito un rol "Supervisor Nocturno"
|
|
CUANDO creo el rol seleccionando permisos especificos
|
|
ENTONCES el sistema guarda el nuevo rol
|
|
Y esta disponible para asignar a usuarios
|
|
```
|
|
|
|
---
|
|
|
|
## Roles Predefinidos
|
|
|
|
| Rol | Ordenes | Diagnosticos | Inventario | Vehiculos | Cotizaciones | Reportes | Config |
|
|
|-----|---------|--------------|------------|-----------|--------------|----------|--------|
|
|
| AdminTaller | CRUD | CRUD | CRUD | CRUD | CRUD | CRUD | CRUD |
|
|
| JefeTaller | CRUD | CRUD | Ver | CRUD | CRUD | Ver | - |
|
|
| MecanicoDiesel | Ver+Editar | CRUD | Solicitar | Ver | - | - | - |
|
|
| Almacenista | Ver | - | CRUD | - | - | Ver inv | - |
|
|
| Recepcionista | Crear+Ver | - | Ver | Crear+Ver | CRUD | - | - |
|
|
| Contador | Ver | - | Ver | - | Ver | CRUD | - |
|
|
|
|
---
|
|
|
|
## Tareas Tecnicas
|
|
|
|
**Database:**
|
|
- [ ] DB-003: Crear tabla `workshop_roles` en schema `workshop_core`
|
|
- [ ] DB-004: Crear tabla `role_permissions` para matriz de permisos
|
|
- [ ] DB-005: Insertar roles y permisos predefinidos (seed)
|
|
|
|
**Backend:**
|
|
- [ ] BE-005: Crear RoleEntity con relacion a permisos
|
|
- [ ] BE-006: Crear RoleService con CRUD y asignacion permisos
|
|
- [ ] BE-007: Crear RoleController endpoints
|
|
- [ ] BE-008: Implementar guard de permisos
|
|
|
|
**Frontend:**
|
|
- [ ] FE-005: Crear RolesConfigPage
|
|
- [ ] FE-006: Crear RoleCard y PermissionsMatrix components
|
|
- [ ] FE-007: Crear RoleForm para creacion/edicion
|
|
- [ ] FE-008: Implementar rolesStore
|
|
|
|
**Tests:**
|
|
- [ ] TEST-003: Test guard de permisos
|
|
- [ ] TEST-004: Test asignacion de rol a usuario
|
|
|
|
---
|
|
|
|
## Dependencias
|
|
|
|
**Depende de:**
|
|
- [ ] US-MMD001-001: Configurar taller
|
|
- [ ] MGN-003 Roles (Core)
|
|
|
|
**Bloquea:**
|
|
- [ ] Asignacion de usuarios a roles
|
|
- [ ] Todos los modulos que verifican permisos
|
|
|
|
---
|
|
|
|
## Notas Tecnicas
|
|
|
|
**Endpoints involucrados:**
|
|
| Metodo | Endpoint | Descripcion |
|
|
|--------|----------|-------------|
|
|
| GET | /api/roles | Listar roles del taller |
|
|
| POST | /api/roles | Crear rol |
|
|
| GET | /api/roles/:id | Detalle rol con permisos |
|
|
| PATCH | /api/roles/:id | Actualizar rol |
|
|
| DELETE | /api/roles/:id | Eliminar rol (solo custom) |
|
|
| GET | /api/permissions | Listar permisos disponibles |
|
|
|
|
**Entidades/Tablas:**
|
|
- `workshop_core.workshop_roles`
|
|
- `workshop_core.role_permissions`
|
|
- `workshop_core.permissions`
|
|
|
|
---
|
|
|
|
## Definition of Ready (DoR)
|
|
|
|
- [x] Historia claramente escrita
|
|
- [x] Criterios de aceptacion definidos
|
|
- [x] Matriz de permisos definida
|
|
- [x] Roles predefinidos listados
|
|
|
|
## Definition of Done (DoD)
|
|
|
|
- [ ] Roles predefinidos creados
|
|
- [ ] UI de gestion de roles funcionando
|
|
- [ ] Guard de permisos implementado
|
|
- [ ] Tests pasando
|
|
- [ ] Demo realizada
|
|
|
|
---
|
|
|
|
**Creada por:** Requirements-Analyst
|
|
**Fecha:** 2025-12-06
|