# 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