Asignar Permisos
Proceso para dar o quitar permisos a usuarios.
Quien Puede Asignar
Requisitos
Para asignar permisos necesitas:
- Ser admin
- O tener el permiso acl.manage
- El usuario destino debe tener rol compatible
Roles que pueden asignar:
- admin → Puede asignar a cualquiera
- user → Puede asignar a sus subusers (limitado)
Metodos de Asignacion
Desde Perfil del Usuario
- Menu: Administracion → Usuarios
- Buscar el usuario
- Click [...] → Ver permisos
- Activar/desactivar permisos
- Guardar
Permisos de Maria Lopez (subuser)
PROCESOS
- process.read - Ver procesos
- process.manage - Gestionar procesos
EVENTOS
- events.read - Ver eventos
- events.manage - Gestionar eventos
USUARIOS
- users.read - Ver usuarios
- users.manage - Gestionar usuarios
PRUEBAS
- tests.read - Ver pruebas
- tests.manage - Gestionar pruebas
- user-tests.manage - Asignar pruebas
Desde ACL Groups
- Menu: Administracion → Permisos
- Tab: Por Usuario
- Buscar usuario
- Click en su fila
- Modificar permisos
Misma interfaz que desde perfil.
Asignacion Masiva
Para asignar el mismo permiso a varios usuarios:
- Menu: Administracion → Permisos
- Tab: Por Permiso
- Seleccionar ACL Object (ej: events.manage)
- Click [Asignar a usuarios]
- Seleccionar usuarios
- Confirmar
Asignar: events.manage
Usuarios con este permiso:
- Juan Perez
- Maria Lopez
- Pedro Garcia
- Ana Martinez
[ ] Seleccionar todos
Interfaz de Permisos
Toggle de Permiso
Cada permiso tiene un toggle:
- [x] process.read - Check = usuario TIENE el permiso
- [ ] users.manage - Sin check = usuario NO tiene el permiso
Click para cambiar:
- → [ ] = Quitar permiso
- → [x] = Dar permiso
Permisos No Disponibles
Si un permiso no puede asignarse al usuario:
- [Bloqueado] orders.manage (Solo admin) - El rol del usuario no esta en allowedRoles
- [Deshabilitado] acl.manage - No tienes permiso para asignar este
Estos aparecen pero no son clickeables.
Agrupacion por Modulo
Los permisos se agrupan por modulo:
PROCESOS
- process.read
- process.manage
EVENTOS
- events.read
- events.manage
USUARIOS
- users.read
- users.manage
Click en el titulo del modulo para expandir/colapsar.
Asignar a Subusers
Como User (Empresa)
Si eres user (empresa), puedes asignar permisos a tus subusers:
- Ve a lista de usuarios
- Filtra por subusers
- Selecciona uno de TUS subusers
- Modifica permisos
Restricciones:
- Solo puedes modificar TUS subusers
- No puedes dar permisos que tu no tienes
- No puedes dar acl.manage a subusers
Permisos Heredados
Los subusers heredan contexto, no permisos:
HEREDA:
- Ver datos de la empresa (ownerId)
- Proyectos, vacantes, candidatos
- Todo lo que es del user padre
NO HEREDA:
- Permisos del user padre
- Cada subuser tiene sus propios permisos
Por eso debes configurar permisos para cada subuser individualmente.
Plantillas de Permisos
Crear Plantilla
Si asignas los mismos permisos frecuentemente:
- Configura permisos en un subuser
- Menu [...] → Guardar como plantilla
- Nombra la plantilla: "Reclutador"
Guardar Plantilla
| Campo | Valor |
|---|---|
| Nombre | Reclutador |
Permisos incluidos:
- process.read
- process.manage
- events.read
- events.manage
- 5 permisos mas...
Aplicar Plantilla
Para aplicar a nuevo subuser:
- Ve a permisos del subuser
- Click [Aplicar plantilla]
- Selecciona "Reclutador"
- Confirma
Todos los permisos de la plantilla se aplican al usuario.
Plantillas Predefinidas
SOLO LECTURA:
- process.read
- events.read
- job-positions.read
- (todos .read, ningun .manage)
RECLUTADOR:
- process.read
- process.manage
- events.read
- events.manage
- user-tests.manage
- analytics.read
MANAGER:
- Todos los permisos excepto:
- users.manage (NO)
- acl.manage (NO)
- orders.manage (NO)
Validaciones
Rol Incompatible
Error: "Este permiso no es compatible con el rol del usuario"
Causa: El rol del usuario no esta en allowedRoles del objeto
Solucion:
- Cambiar el rol del usuario (si corresponde)
- O asignar un permiso diferente
Sin Permiso para Asignar
Error: "No tienes permiso para asignar este acceso"
Causa:
- No eres admin
- No tienes acl.manage
- Intentas asignar permiso que no tienes
Solucion: Contacta a un admin
Usuario No Encontrado
Error: "Usuario no encontrado"
Causa:
- El usuario fue eliminado
- O no tienes acceso a verlo
Solucion: Verifica que el usuario existe
Auditoria
Historial de Cambios
Cada cambio de permiso se registra:
Historial de Permisos - Maria Lopez
| FECHA | PERMISO | ACCION | POR |
|---|---|---|---|
| 20/01 14:30 | events.manage | Dado | Juan Perez |
| 18/01 10:15 | users.manage | Quitado | Admin |
| 15/01 09:00 | process.read | Dado | Juan Perez |
| 15/01 09:00 | process.manage | Dado | Juan Perez |
Log de Actividad
Menu: Administracion → Log de actividad
Filtro: [Tipo: Permisos]
Muestra todos los cambios de permisos en la organizacion.
Efectos del Cambio
Inmediato
Los cambios de permisos toman efecto:
- Inmediatamente para nuevas acciones
- El cache se invalida automaticamente
- Usuario no necesita cerrar sesion
Si el usuario esta en una pagina protegida:
- La proxima accion fallara
- Sera redirigido si no tiene acceso
Notificacion
El usuario afectado puede recibir notificacion:
"Tus permisos han sido actualizados. Ahora tienes acceso a: Gestionar eventos"
Configurable por admin.
Mejores Practicas
Al Asignar
DO:
- Usar principio de minimo privilegio
- Documentar por que se dio el permiso
- Revisar permisos periodicamente
- Usar plantillas para consistencia
- Verificar que el permiso es necesario
DON'T:
- Dar todos los permisos "por si acaso"
- Olvidar quitar permisos a exempleados
- Asignar permisos sin validar necesidad
- Ignorar el log de auditoria
- Dar acl.manage a usuarios no admin
Seguridad
Recomendaciones:
- Revisar permisos mensualmente
- Quitar acceso cuando cambia rol
- Documentar permisos por posicion
- Usar plantillas estandarizadas
- Mantener admins al minimo
Permisos
acl.manage - Asignar y quitar permisos
users.read - Ver usuarios para asignarles permisos
Proximos Pasos
- Verificar Permisos - Como funciona la verificacion
- ACL Objects - Ver permisos disponibles
- Subusers - Gestion de empleados