Notas de versión — 10 de mayo de 2026
Esta versión entrega una corrección del sistema de permisos que soluciona un error 403 en las rutas de tareas para los administradores de workspace, elimina un privilegio excesivo del rol de miembro de workspace y estandariza los roles de unidad en todos los workspaces existentes.
Corrección del sistema de permisos
Corrección de error: el administrador de workspace recibía 403 en las rutas de tareas
Los usuarios con rol de administrador de workspace recibían un error 403 Forbidden al acceder a los endpoints de la API relacionados con tareas. La causa raíz era la falta del permiso tasks.view en la definición del rol workspace_admin en las bases de datos de unidades existentes.
La corrección se aplica automáticamente a todos los workspaces existentes — no se requiere ninguna acción.
Corrección de error: el miembro de workspace tenía el privilegio excesivo tasks.delete
El rol workspace_member incluía incorrectamente el permiso tasks.delete. Según el modelo de permisos previsto (y la matriz de permisos publicada), solo los roles Manager y Owner deberían poder eliminar tareas.
Este privilegio excesivo ha sido eliminado de todos los roles de miembro de workspace existentes.
Roles de unidad estandarizados
Los roles member y manager a nivel de unidad han sido sincronizados con las plantillas de roles globales en todas las unidades:
member— ahora incluye consistentementesettings.view,tasks.viewyrates.viewmanager— peso estandarizado (60) y conjunto de permisos estandarizado (≥ 12 permisos)
Las nuevas unidades no se verán afectadas en adelante
El servicio de copia de roles (roleCopy.service) ahora utiliza upserts idempotentes al aprovisionar roles para unidades recién creadas. Esto garantiza que las nuevas unidades siempre comiencen con el conjunto de permisos correcto, incluso si el aprovisionamiento se reintenta.
Resumen de cambios
| Capa | Cambio |
|---|---|
| Migración de BD backend | workspace_admin: se añadieron tasks.view y reports.advanced a todos los roles de workspace existentes |
| Migración de BD backend | workspace_member: se eliminó el privilegio excesivo tasks.delete de todos los roles de miembro de workspace existentes |
| Migración de BD backend | Los roles de unidad member y manager se sincronizaron desde las plantillas globales en todas las unidades |
| Migración de BD backend | El array desnormalizado WorkspaceMember.permissions se resincronizó desde los roles de workspace actualizados |
Backend roleCopy.service.ts | La copia de roles y permisos de ámbito de unidad ahora usa upsert (idempotente) |
Backend syncPermissions.routes.ts | Nuevo endpoint de administrador: POST /api/v1/admin/sync-permissions/units/:unitId |