# Empleados y accesos

## Paso a paso

Las tareas más comunes, resumidas. El detalle de cada una está en las secciones numeradas.

### Dar de alta a un empleado

1. En el menú lateral abre **⚙️ Configuración → Empleados y accesos**.
2. Pulsa **➕ Nuevo Empleado**.
3. Escribe el **Nombre**, elige el **Rol** (Administrador o Vendedor) y asígnale un **PIN** de 4 dígitos que no sea fácil (nada de `1234` ni `1111`).
4. Pulsa **Guardar** y dale el PIN al empleado. La primera vez que entre, el sistema le pedirá cambiarlo por uno propio.

Ver sección 4.

### Un empleado olvidó su PIN

1. En la fila del empleado, abre el menú **⋮** y elige **🔑**.
2. Escribe el **PIN nuevo** para él.
3. Confirma con **tu** PIN de administrador.
4. Dale el PIN nuevo; al entrar tendrá que cambiarlo.

Ver sección 6.

### Quitarle el acceso a un empleado

1. En su menú **⋮** elige **🚫 Desactivar empleado**.
2. Confirma con **Sí, desactivar**.

Ver sección 7.

## 1. ¿Qué es Empleados?

Es la pantalla donde se administran las cuentas del personal que usa el sistema: nombre, rol (Administrador o Vendedor), si está activo, y su PIN de acceso.

**Quién puede usarlo:** Empleados es **exclusivo de administrador**. Un vendedor no ve esta pantalla ni puede crear, editar o desactivar cuentas.

**Cómo llegar:** en el menú lateral abre **⚙️ Configuración → Empleados y accesos**. (Si alguien tiene guardado el enlace viejo `#employees`, el sistema lo lleva ahí automáticamente.)

## 2. Cómo inician sesión los empleados

No hay usuario/contraseña tradicional: en la pantalla de login, cada empleado **elige su nombre de una lista** (solo aparecen los empleados activos) y **captura su PIN de 4 dígitos**.

- Tras **5 intentos fallidos** con el PIN de un empleado, esa cuenta queda bloqueada temporalmente (5 minutos, duplicándose en cada bloqueo repetido hasta un máximo de 1 hora).
- Tras **20 intentos fallidos** en general desde el mismo equipo, se bloquea también esa IP.
- Al iniciar sesión correctamente, si el empleado tiene marcado **"debe cambiar su PIN"**, el sistema lo lleva directo a la pantalla de **cambio de PIN obligatorio** antes de dejarlo usar cualquier otra parte del sistema.

### 2.1 ¿Cuándo se marca "debe cambiar su PIN"?

- Automáticamente para los dos empleados de la **base de demostración** (Administrador con PIN `1234` y Vendedor con PIN `1111`), ya que ambos son PIN débiles/de fábrica. Una instalación nueva no trae empleados: el primer administrador lo crea el asistente de primer arranque con un PIN elegido por él mismo, y no se le pide cambiarlo (ver el [manual de Instalación](./instalacion.md)).
- Cada vez que un **administrador le asigna un PIN a otro empleado** (alta o edición) — esa persona debe cambiarlo por uno propio en su próximo inicio de sesión. Si un administrador cambia **su propio** PIN, no se le obliga a cambiarlo de nuevo.
- Cuando se usa **🔑 Restablecer PIN** (sección 6) para un empleado que olvidó el suyo.

## 3. La tabla de empleados

Columnas: ID, Nombre (con la etiqueta "(tú)" junto al usuario con la sesión actual), Rol (Administrador / Vendedor), Estado (Activo / Inactivo), fecha de registro y Acciones.

Acciones por fila (botón **⋮**):

| Ícono | Acción |
|---|---|
| ✏️ | Editar nombre, rol, estado activo/inactivo, o asignar un PIN nuevo. |
| 🔑 | Restablecer el PIN de ese empleado (cuando olvidó el suyo). |
| 🚫 / ✅ | Desactivar la cuenta (pide confirmación) o reactivarla. No aparece en tu propia fila: no puedes desactivarte a ti mismo. |

## 4. Registrar un empleado nuevo

1. Clic en **➕ Nuevo Empleado**.
2. Llena:
   - **Nombre** (obligatorio).
   - **Rol**: Administrador o Vendedor.
   - **PIN**: obligatorio al crear, debe ser de **exactamente 4 dígitos**.
3. Clic en **Guardar**.

**El PIN no puede ser "débil"** — el sistema rechaza:
- Los 4 dígitos repetidos (`1111`, `2222`, ...).
- Secuencias ascendentes o descendentes (`1234`, `4321`, `9876`, ...).
- Combinaciones comunes de fábrica/fáciles de adivinar (`1212`, `2580`, `0852`, `1004`, `2000`, `1122`).

Si el PIN es débil, el sistema lo rechaza con el mensaje: *"Ese PIN es muy fácil de adivinar (repetido, secuencia o PIN de fábrica). Elige otro de 4 dígitos."*

Como se explicó arriba, si el PIN se lo asigna un administrador a otra persona (no a sí mismo), esa persona deberá cambiarlo en su próximo inicio de sesión.

## 5. Editar un empleado

1. Clic en **✏️** en la fila del empleado.
2. Puedes cambiar: nombre, rol, estado activo/inactivo, y opcionalmente un **PIN nuevo** (si dejas el campo en blanco, se conserva el PIN actual).
3. Clic en **Guardar**.

### 5.1 Protección al último administrador activo

El sistema **no permite** que te quedes sin ningún administrador activo:

- No se puede **degradar a Vendedor** ni **desactivar** al único administrador activo que queda.
- Para poder hacerlo, primero debe existir **otro** administrador activo en el sistema.

## 6. Restablecer el PIN de un empleado (olvidó su PIN)

Cuando un empleado olvida su PIN y no puede iniciar sesión:

1. Un administrador va a la fila de ese empleado y hace clic en **🔑**.
2. Ingresa el **PIN nuevo** de 4 dígitos para ese empleado (sujeto a las mismas reglas contra PIN débil).
3. Como es una acción sensible, el sistema pide además **el PIN del propio administrador** para confirmar la operación.
4. Al confirmar, el bloqueo por intentos fallidos de ese empleado se limpia de inmediato y queda marcado para **cambiar su PIN** la próxima vez que inicie sesión.

Esta es la única forma de recuperar el acceso de alguien que olvidó su PIN — no hay recuperación por correo ni pregunta de seguridad, ya que el sistema no usa usuario/contraseña tradicional.

> **Recomendación: ten al menos dos administradores.** El PIN de un administrador solo lo puede restablecer otro administrador. Si tu tienda tiene un solo administrador y olvida su PIN, no hay forma de recuperarlo desde el sistema. Da de alta a una segunda persona de confianza con rol **Administrador** y anota los PIN en un lugar seguro.

## 7. Desactivar o reactivar un empleado

Las cuentas **no se eliminan**; se desactivan.

1. En el menú **⋮** de la fila del empleado elige **🚫 Desactivar empleado** y confirma en el diálogo rojo **"Sí, desactivar"**.
2. Desde ese momento ya no aparece en la lista del login, y si tenía una sesión abierta en otro equipo se cierra en su siguiente acción.
3. **Su historial se conserva**: ventas, cortes de caja, movimientos y devoluciones que registró siguen a su nombre.
4. Igual que en la edición, **no se puede desactivar al único administrador activo**, y nadie puede desactivarse a sí mismo desde el menú.
5. Para devolverle el acceso, abre su menú **⋮** y elige **✅ Reactivar empleado** (conserva su PIN).

## 8. Cambio de PIN obligatorio y cambio voluntario

Cuando un empleado entra con la pantalla de **cambio de PIN obligatorio**:

1. Si el PIN actual ya se conoce (por ejemplo, vino de un login recién hecho), se pide solo el **PIN nuevo** y su confirmación.
2. El PIN nuevo pasa por las mismas reglas contra PIN débil.
3. Hasta no completar este paso, el sistema **bloquea el acceso a cualquier pantalla** salvo el propio login/cambio de PIN.

Cualquier empleado (no solo cuando es obligatorio) puede también cambiar su propio PIN voluntariamente desde el menú de su sesión.

## 9. Preguntas frecuentes

**¿Puedo tener dos administradores activos al mismo tiempo?**
Sí, no hay límite de cuántos administradores puede haber — la única regla es que **siempre debe quedar al menos uno activo**.

**Un empleado se quedó bloqueado por meter mal su PIN varias veces, ¿qué hago?**
Espera el tiempo de bloqueo (5 minutos la primera vez, duplicándose hasta 1 hora si se repite) o, si es urgente, usa **🔑 Restablecer PIN** — esto libera el bloqueo de inmediato además de asignarle un PIN nuevo.

**¿Por qué me pide mi propio PIN para restablecer el de otro empleado?**
Porque es una acción sensible sobre la cuenta de otra persona; el sistema re-confirma tu identidad de administrador antes de ejecutarla, igual que al restaurar un respaldo.

**Si desactivo a un empleado, ¿pierdo sus ventas o cortes de caja anteriores?**
No, ese historial se conserva. Solo pierde el acceso; puedes reactivarlo cuando quieras.

**¿Por qué no hay opción para eliminar a un empleado?**
Para no perder el rastro de quién hizo cada venta, corte o devolución. Desactivarlo tiene el mismo efecto práctico (ya no puede entrar) y es reversible.

**¿Los vendedores pueden ver esta pantalla?**
No, Empleados es exclusivo de administrador.
