# Roles y permisos

## ¿Qué es / para qué sirve?

Un **rol** es un conjunto de **permisos** que define qué puede hacer un usuario.
El sistema trae roles preconfigurados (Administrador, Cajero, Salonero), pero
**todo se controla con el nomenclador de permisos**: puedes agregar o quitar
permisos a cualquier rol según lo necesites.

## Paso a paso

1. Ve a **Gestión de Usuarios → Roles**.
2. Presiona **Agregar** (o edita un rol).
3. Escribe el **Nombre del Rol**.
4. Marca los **permisos** por grupo (Usuarios, Productos, Compras, Ventas,
   Reportes, etc.). Cada grupo tiene **Seleccionar Todo**.
5. Si es para el salón, marca **Personal de Servicio**.
6. Guarda y asígnalo a los usuarios que correspondan.

[CAPTURA: pantalla de rol con los grupos de permisos]

## Permisos típicos a controlar

- **Abrir / cerrar caja** (normalmente solo cajero/supervisor).
- **Cobrar** (ocultar el botón de pago para que el salonero solo tome pedidos).
- **Editar precio/descuento**, **anular factura**, **notas de crédito**.
- **Realizar Ventas a Crédito** (permiso `sell.credit_sale`): controla quién puede cerrar una
  venta como "a crédito" en el punto de venta, ya sea con el botón **A Crédito** o marcando
  el método de pago **CREDITO** en la ventana de cobro. Sin este permiso, ninguno de los dos
  aparece; los demás métodos de pago (Efectivo, Tarjeta, Transferencia, etc.) no se ven
  afectados. Los usuarios con el rol **Administrador** pueden vender a crédito siempre,
  aunque no marques este permiso en su rol.
- **Ver reportes** (cada reporte tiene su permiso).

## Los cambios de permisos quedan registrados

Cada vez que alguien guarda un rol, el sistema anota **qué permisos se agregaron y
cuáles se quitaron**, y **quién** hizo el cambio. Si guardas el rol sin tocar
ninguna casilla, no se registra nada.

Para verlo: **Reportes → Logs** (esta opción solo la ve el administrador) y busca
el registro del rol. El detalle muestra el nombre del permiso tal como aparece en
esta pantalla (por ejemplo *Editar Ventas POS*), no un código interno.

Sirve para responder la pregunta que siempre aparece cuando algo deja de
funcionar: *"¿quién le quitó ese permiso al rol y cuándo?"*.

## Aviso cuando alguien choca con un permiso

Si un empleado intenta entrar a una función que su rol no tiene habilitada:

1. El empleado ve una pantalla que le dice **cuál** es la función bloqueada.
2. Te llega un aviso a la **campana** del encabezado, con enlace directo a Roles.
3. Si el negocio tiene el correo configurado, también te llega por correo.

Solo lo reciben el **administrador del negocio** y el usuario de soporte. Si la
misma persona insiste en la misma pantalla, el aviso **no se repite**: durante una
hora se agrupa en uno solo y solo sube el contador de intentos.

Si el negocio trabaja con una **cuenta compartida** (por ejemplo `salonero`) y los
meseros se identifican con su **PIN de personal de servicio**, el aviso nombra a la
**persona del PIN**, no a la cuenta: *"Juan Pérez (con su PIN, en el equipo
salonero) no pudo entrar a Editar Ventas POS"*. Si el PIN ya caducó por
inactividad, aparece la cuenta compartida.

[CAPTURA: aviso de permiso en la campana del encabezado]

## Notas y avisos

> - Si un usuario "no ve" un botón o pantalla, casi siempre es por **permisos** de
>   su rol.
> - Cambiar permisos de un rol afecta a **todos** los usuarios con ese rol.
> - Un permiso muy usado es **Venta → Editar**: sin él, el usuario no puede abrir
>   una cuenta o mesa ya iniciada. Si lo desmarcas, el POS deja de dejar entrar a
>   las mesas ocupadas.
> - El aviso por correo solo sale si el negocio tiene el correo configurado. Si el
>   correo falla, el aviso de la campana llega igual.
> - PENDIENTE DE VERIFICAR: si tu negocio quiere que un cajero sin el permiso **Realizar
>   Ventas a Crédito** pueda pedirle a un supervisor que la autorice en el momento (sin tener
>   que editar el rol), esa opción no está disponible todavía -- consulta con soporte si la
>   necesitas.