Permisos y alcance
Lo que un operador puede hacer sale de dos cosas: qué acciones tiene permitidas (permisos) y sobre qué parte de la jerarquía (alcance).
Permisos: recurso + acción
Los permisos son planos: cuatro acciones por recurso, y ninguna implica a otra.
| Acción | Cubre |
|---|---|
| Ver | Listas, detalles y reportes. |
| Crear | Crear el recurso. |
| Editar | Modificar, activar/desactivar y administrar sub-recursos. |
| Eliminar | Borrado en cascada. |
Recursos que se pueden otorgar: Clientes, Cuentas, Operaciones, Dispositivos, Inventario
(device_inventory), Productos, Usuarios consumidores, Códigos, Perfiles, Reportes, Operadores,
Roles, Configuración, API keys, Auditoría.
Nada implica nada: Editar no otorga Ver. En la práctica, sin Ver no se abre la lista ni el detalle, y los botones de editar viven ahí dentro: un rol con Editar pero sin Ver no puede hacer nada por la interfaz. La regla útil: siempre marca Ver y añade encima lo que haga falta.
Dos recursos son propios y no cuelgan de otro:
- Inventario (
device_inventory) es distinto de Dispositivos: Ver inventario muestra la pestaña Inventario, Editar inventario permite tocar slots y planograma. Ver el dispositivo en sí depende de Ver dispositivos. - Códigos es distinto de Usuarios consumidores: los códigos son de nivel operación, así que un operador de operación puede gestionar códigos sin poder crear o editar al usuario, que es de nivel cuenta.
Recursos reservados a INSSA
Controladoras, alta y baja de dispositivos (device_provisioning), errores de servidor y
errores de lambdas son recursos reservados: no se pueden otorgar a ningún rol de cliente y no
aparecen en la app. Por eso el alta de dispositivos y de controladoras es una solicitud a INSSA.
Alcance: dónde aplican
Cada operador vive en un nivel: global, cliente, cuenta u operación. Sus permisos solo aplican a ese nodo y a lo que está debajo.
| Alcance | Ve |
|---|---|
| Global | Todo (uso interno de INSSA). |
| Cliente | Sus cuentas, operaciones, dispositivos, usuarios… |
| Cuenta | Su cuenta y sus operaciones. |
| Operación | Solo su operación. |
Fuera de alcance, la respuesta es Tu alcance no permite esta acción sobre el recurso.
Rol + permisos extra
El rol es la plantilla: define el piso de permisos del operador. Al crear o editarlo puedes personalizar sus permisos, y esa lista suma sobre el rol.
| Origen | Cómo se ve en el editor |
|---|---|
| Del rol | Marcado y bloqueado, con la etiqueta Lo otorga el rol. Desmarcarlo no hace nada. |
| Extra | Lo que marcas tú encima. Es lo único que se guarda como personalización. |
El permiso efectivo es la unión de los dos. Para quitarle algo a un operador hay que cambiarle el rol: ahí es donde vive la plantilla.
Dos límites que la app aplica siempre:
- No hay escalada de privilegios: solo puedes otorgar permisos que tú tengas (el editor solo ofrece los tuyos).
- No hay salto de jerarquía: solo creas operadores en tu mismo nivel o por debajo.
Tu propio nodo: editarlo sí, darlo de baja no
El nivel al que perteneces (tu cuenta, si tu alcance es esa cuenta) lo ves y lo editas con el permiso Editar correspondiente: razón social, contacto, etiquetas.
Lo que no puedes es desactivarlo ni eliminarlo: el borrado cascadea sobre los operadores de ese ámbito, incluido el tuyo, y no hay restaurar. La app oculta esos dos botones y el servidor los rechaza igual. Tampoco puedes tocar un nivel por encima del tuyo.
Crear: además del permiso, el nivel
Crear una entidad de la jerarquía exige estar por encima de ella. Con el permiso Crear pero en
el nivel equivocado, la app no muestra el botón ni deja abrir la URL /new:
| Quiero crear | Lo puede hacer |
|---|---|
| Cuenta | Global y cliente. Un operador de cuenta ve una sola cuenta —la suya— así que no crea cuentas. |
| Operación | Global, cliente y cuenta. Un operador de operación ve solo la suya. |
| Perfil | Global, cliente y cuenta. Todo perfil es de la cuenta; dónde funciona lo definen sus dispositivos habilitados. |
| Producto, usuario consumidor, código | Cualquier nivel, dentro de su alcance. |
| Operador | Cualquier nivel, en su mismo nivel o por debajo. |
| Dispositivo, controladora, cliente | Solo INSSA. |
Qué oculta la app y qué no
La interfaz esconde lo que no puedes usar, pero el filtro definitivo es el servidor.
Se oculta o se bloquea por permiso:
| Elemento | Permiso |
|---|---|
| Sección del menú (Cuentas, Operaciones, Dispositivos, Productos, Perfiles, Usuarios, Auditoría) y su URL | Ver del recurso |
| Dashboard y Movimientos (Entregas, fallidas, Recargas, Crédito disponible, EAS, Devoluciones) | Ver reportes + la línea de negocio de la pantalla |
| Operadores / Roles / Desarrollador en el menú del avatar | Ver operadores / Ver roles / Ver API keys |
Botones Nuevo/Nueva y sus URLs /new | Crear del recurso + el nivel adecuado |
| Editar, activar/desactivar, mover | Editar del recurso |
| Eliminar | Eliminar del recurso |
| Pestaña y página Inventario | Ver inventario |
| Editar slots, planograma, rellenar/vaciar | Editar inventario |
| Agregar / editar / eliminar código, huellas | Crear / Editar / Eliminar códigos |
| Acciones en lote | Editar usuarios consumidores (el detalle por fila lo valida el servidor) |
| Exportar a Excel de usuarios | Ver usuarios consumidores |
| Editar operador | Editar operadores |
| Editar / eliminar rol | Editar roles / Eliminar roles (los roles del sistema no se editan nunca) |
| Crear / revocar API key | Crear API keys / Eliminar API keys |
No depende de permisos (cualquier operador autenticado): Mi perfil, sus preferencias, cambio de contraseña, la campana de notificaciones y el recibo público por QR.
Ocultar el botón es comodidad, no seguridad: cada acción se vuelve a validar en el servidor con tu permiso, tu alcance y tu línea de negocio. Si llegas a una URL que no te corresponde, la app te devuelve a tu portada.
Líneas de negocio: qué pantallas ves
Tu operador hereda las líneas de negocio de su origen y eso decide qué pantallas de movimientos existen para ti. El permiso de reportes es uno solo (Ver reportes) para las dos líneas, así que la línea es la que separa:
| Manejas | Ves |
|---|---|
| Solo vending | Dashboard, Entregas, Entregas fallidas, Recargas, Crédito disponible |
| Solo EAS | Entregas EAS, Entregas fallidas EAS, Devoluciones |
| Ambas | Los dos grupos completos |
El Dashboard es de ventas vending: un operador solo-EAS no lo ve y su portada al iniciar sesión es Entregas EAS.
La línea también limita las opciones de los selectores: el filtro Línea de negocio de las listas, la línea al crear cuenta, operación, producto o perfil, y las filas del bloque de perfiles al crear o editar un código (un operador solo-vending no ve la fila Perfil EAS).
Qué revisar cuando falta un botón
- Mi perfil › Permisos: ¿tienes la acción sobre ese recurso? ¿y Ver?
- ¿El recurso está dentro de tu alcance?
- Si es un nivel jerárquico: ¿es el tuyo? Entonces no puedes desactivarlo ni eliminarlo.
- ¿La línea de negocio del recurso es una de las tuyas?