Gestión de empleados
La entidad Employee (src/Entity/Organization/Employee) es el modelo de usuario del sistema Doggy y también el sujeto de autenticación de Symfony Security. La entrada de gestión se basa en EmployeeController y EmployeeApiController.
Descripción general
El módulo de gestión de empleados cubre todo el ciclo de vida:
- Perspectiva de RR. HH.: gestión de la plantilla, incorporación, análisis estadístico
- Perspectiva de TI: alta de cuentas, asignación de permisos, configuración de Passkey
- Perspectiva de gestores: gestión de equipos, relaciones jerárquicas, asignación de personal
Estructura de la entidad
Employee es la entidad App\Entity\Organization\Employee y también el proveedor de usuarios de Security:
yaml
# config/packages/security.yaml
providers:
app_user_provider:
entity:
class: App\Entity\Organization\EmployeeCampos clave:
isPasswordModifiedByUser: indica si la contraseña inicial ya se ha modificado- Relación uno a muchos con
WebauthnCredential(passkeys) - El avatar se gestiona a través de
AvatarController
Funcionalidades principales
Plantilla de empleados
- Interfaz de administración:
templates/employee/list.html.twig - Página de detalle:
templates/employee/show.html.twig - Página de edición:
templates/employee/edit.html.twig - Panel de edición:
templates/employee/edit_drawer.html.twig - Gestión de avatar:
templates/employee/_avatar_modal.html.twig
Interfaz API
La gestión de empleados ofrece una API RESTful a través de EmployeeApiController:
http
GET /api/admin/employees # Lista de empleados
POST /api/admin/employees # Crear empleado
GET /api/admin/employees/{id} # Detalle del empleado
PUT /api/admin/employees/{id} # Actualizar empleado
DELETE /api/admin/employees/{id} # Eliminar empleadoProceso de incorporación
En el primer inicio de sesión, el sistema detecta automáticamente el estado del usuario mediante UserSetupListener:
- Comprueba si la contraseña se ha modificado (
isPasswordModifiedByUser) - Comprueba si se ha registrado un Passkey
- Si falta algún paso, redirige a la página de configuración
Configuración de usuario
php
// src/EventListener/UserSetupListener.php
// Lista blanca de rutas de permisos: app_user_setup, app_logout
// Las rutas de WebAuthn y de inicio de sesión siempre son accesibles
// Redirige a la página de configuración cuando la contraseña no se ha modificado o no hay PasskeyPuntos de entrada de administración
- Lista de empleados:
App\Controller\EmployeeController - API:
App\Controller\Api\EmployeeApiController - Avatar:
App\Controller\Api\AvatarController