# Roles y permisos
## ¿Qué es un rol?
Un **conjunto de permisos** que se asigna a uno o varios usuarios. Define qué pueden hacer.
## Acceso
Menú → **Usuarios → Roles**
## Roles predefinidos
| Rol | Pensado para | Acceso |
|-----|--------------|--------|
| **Administrador** | Dueño / Gerente | Todo |
| **Encargado de sucursal** | Manager de local | Casi todo en su sucursal |
| **Vendedor / Cajero** | Atención al público | POS y ventas propias |
| **Compras** | Encargado de compras | Compras, proveedores, stock |
| **Contabilidad** | Contador externo | Reportes, contabilidad, sin POS |
| **Solo lectura** | Auditoría / Análisis | Ver todo, sin escribir |
## Crear un rol personalizado
**Roles → Nuevo rol**
1. **Nombre del rol**
2. **Descripción**
3. Marcar los permisos que tendrá
## Lista de permisos disponibles
Hay ~150 permisos granulares organizados por módulo:
### Ventas
- `sell.view` (ver ventas)
- `sell.create` (crear ventas)
- `sell.update` (modificar ventas existentes)
- `sell.delete` (anular ventas)
- `sell.discount` (aplicar descuentos)
- `sell.modify_price` (cambiar precio en POS)
- etc.
### Compras
- `purchase.view`, `purchase.create`, `purchase.update`, `purchase.delete`
### Productos
- `product.view`, `product.create`, `product.update`, `product.delete`
- `product.view_cost` (ver costo - sensible)
- `product.bulk_update` (actualización masiva)
### Stock
- `stock.view`, `stock.transfer`, `stock.adjust`
### Caja
- `cash.open`, `cash.close`
- `cash.transfer_between` (transferir entre cajas)
### Reportes
- `report.sales`, `report.purchases`, `report.profit`, `report.tax`, etc.
### Configuración
- `settings.business`, `settings.users`, `settings.fiscal`
## Modificar permisos de un rol
Roles → editar → tildar/destildar permisos → Guardar.
**Cambios se aplican inmediatamente** a todos los usuarios con ese rol (deben recargar página o relogin).
## Permisos sensibles
Cuidá especialmente:
- ❗ `sell.delete` (anular ventas)
- ❗ `product.view_cost` (ver márgenes)
- ❗ `settings.fiscal` (modificar config DGI)
- ❗ `cash.transfer_between` (mover dinero)
- ❗ `user.delete` (eliminar usuarios)
Solo darlos a personas de confianza.
## Combo común para Vendedor
```
✅ sell.view (solo las propias)
✅ sell.create
✅ sell.add_payment
✅ contact.view
✅ contact.create (clientes nuevos al vuelo)
✅ product.view (sin ver costo)
❌ sell.modify_price
❌ sell.discount (o con límite hasta 10%)
❌ sell.delete
❌ todo lo demás
```