Saltar al contenido principal

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 consistentemente settings.view, tasks.view y rates.view
  • manager — 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

CapaCambio
Migración de BD backendworkspace_admin: se añadieron tasks.view y reports.advanced a todos los roles de workspace existentes
Migración de BD backendworkspace_member: se eliminó el privilegio excesivo tasks.delete de todos los roles de miembro de workspace existentes
Migración de BD backendLos roles de unidad member y manager se sincronizaron desde las plantillas globales en todas las unidades
Migración de BD backendEl array desnormalizado WorkspaceMember.permissions se resincronizó desde los roles de workspace actualizados
Backend roleCopy.service.tsLa copia de roles y permisos de ámbito de unidad ahora usa upsert (idempotente)
Backend syncPermissions.routes.tsNuevo endpoint de administrador: POST /api/v1/admin/sync-permissions/units/:unitId