Roles y permisos
El acceso en el Backoffice se controla en dos niveles: roles por organización (asignados por usuario por organización) y un rol de sistema para los administradores de la plataforma Percus.
Roles de organización
Cada usuario tiene exactamente un rol dentro de cada organización a la que pertenece.
| Rol | Nivel |
|---|---|
OrganizationAdmin | Control total sobre la organización |
ProjectManager | Crear y gestionar proyectos; publicar templates |
Developer | Subir y gestionar templates; ver proyectos |
Viewer | Acceso de solo lectura |
Matriz de permisos
| Acción | Viewer | Developer | ProjectManager | OrgAdmin |
|---|---|---|---|---|
| Ver proyectos | ✅ | ✅ | ✅ | ✅ |
| Crear proyecto | — | — | ✅ | ✅ |
| Editar proyecto (nombre/descripción) | — | — | ✅ | ✅ |
| Archivar proyecto | — | — | — | ✅ |
| Ver templates | ✅ | ✅ | ✅ | ✅ |
| Subir template | — | ✅ | ✅ | ✅ |
| Archivar template | — | ✅ | ✅ | ✅ |
| Desplegar template a PROD | — | — | ✅ | ✅ |
| Publicar/despublicar canal | — | — | ✅ | ✅ |
| Gestionar public video shares | — | — | ✅ | ✅ |
| Crear credenciales de API | — | — | ✅ | ✅ |
| Revocar credenciales de API | — | — | ✅ | ✅ |
| Invitar usuarios | — | — | — | ✅ |
| Cambiar roles de usuario | — | — | — | ✅ |
| Desactivar/reactivar usuarios | — | — | — | ✅ |
| Gestionar configuración de organización | — | — | — | ✅ |
Rol de sistema: Owner
El rol Owner es una designación a nivel de plataforma asignada por el equipo de Percus. Los Owners:
- Pueden acceder y gestionar todas las organizaciones.
- Pueden asignar y remover el rol de sistema
Ownera otros usuarios. - Tienen permisos completos en todas las organizaciones (equivalente a
OrganizationAdminen todas partes).
Un Owner se identifica por el claim system_role: "Owner" en su JWT.
Asignación de roles
Los roles se asignan en el momento de la invitación y pueden cambiarse posteriormente por un OrganizationAdmin:
PUT /v1/users/{userId}/role
{ "role": "ProjectManager" }
El cambio de rol de un usuario toma efecto en su próxima solicitud tras refrescar la sesión.
Aplicación
La autorización se aplica en la capa de API:
- Los endpoints del Campaign Service que mutan estado requieren la política
OrgAdminOrOwner(o la verificación de rol en el handler). - La información de rol se reenvía desde la sesión del frontend mediante las cabeceras
X-Percus-Forwarded-Org-RoleyX-Percus-Forwarded-System-Role. - El Identity Service valida las asignaciones de roles y garantiza que solo los
OrganizationAdminpuedan invitar o modificar otros usuarios.