- Added `removeAccessAccount` function to handle account deletion in the database, ensuring no external references exist. - Created `deleteAccount` API function to facilitate account deletion requests from the client. - Developed `AccountDeleteDialog` component for user confirmation before account deletion, integrating with the delete API. - Introduced resource image handling with validation for PNG uploads, including UI components for image selection and preview. - Implemented resource icon template evolution logic to maintain icon bindings without overwriting existing fields. - Added scripts for auditing account deletion and usage checks, ensuring robust testing of the new features.
2.9 KiB
Eliminación de registros creados por error
Se permite eliminar configuraciones de aplicaciones, correo, carpetas, impresoras y certificados de un perfil, métodos de asistencia técnica de un activo y relaciones entre activos. Está disponible para cualquier estado del registro, incluidos los retirados y cerrados. No se elimina el catálogo de tipos de relación ni el catálogo de herramientas de asistencia.
La acción se ofrece en el menú de fila de las configuraciones y en las fichas de asistencia y relaciones. Siempre requiere confirmación modal e informa de que la eliminación es definitiva e incluye el historial propio. Una configuración representa lo documentado en Metis Desk: borrarla no desinstala programas, elimina certificados del dispositivo, revoca permisos ni retira herramientas reales.
Cada operación valida los UUID, el cuerpo vacío y la consulta vacía, exige autenticación y la protección CSRF general del servidor, y restringe la escritura a la compañía indicada. Para asistencia se comprueba también el activo. La persistencia bloquea la compañía y el registro, elimina primero las revisiones propias y luego el registro, dentro de una transacción. No modifica activos, recursos, cuentas, personas, perfiles ni permisos. Un identificador inexistente o de otra compañía devuelve 404 sin modificar datos.
Las tareas de procesos que ya copiaron una referencia mantienen su descripción e historial: la eliminación del registro de origen no elimina el proceso. Al refrescar su revisión actual, ese registro deja de aparecer.
Las entidades con condiciones de eliminación (perfiles, puestos, activos, recursos y catálogos utilizados) quedan fuera de esta ampliación. Las eliminaciones de asignaciones a departamentos y procesos de personas ya estaban disponibles.
Cuentas de sistemas externos
En Compañías → Cuentas y accesos → Cuentas, el menú de cada fila permite «Eliminar cuenta» con confirmación. El borrado definitivo incluye el historial propio y está disponible para cuentas activas o inactivas, siempre que no tengan referencias actuales ni históricas: titulares, pertenencias a grupos, permisos, perfiles, correo, carpetas u otros registros. Si la cuenta está en uso, se conserva todo y el diálogo propone desactivarla. Esta operación solo elimina la documentación de Metis Desk; no elimina cuentas externas.
POST /api/access/:companyId/:id/delete requiere UUID válidos, cuerpo {}, consulta vacía,
sesión autenticada y CSRF. Devuelve el espacio actualizado con 200; un registro ausente,
de otra compañía o de otro tipo devuelve 404; una cuenta referenciada devuelve
409 ACCOUNT_IN_USE. Repetir el borrado devuelve 404 sin efectos adicionales.
La transacción bloquea catálogo, compañía, espacio y cuenta, comprueba las FK entrantes
y elimina únicamente referencias salientes, valores e historial propios. No borra
relaciones en cascada ni permite eliminar catálogos a través de esta ruta.