HandyCafe Docs
owner

Roles y permisos de cajero

HandyCafe utiliza control de acceso basado en roles (RBAC) para gestionar lo que cada miembro del personal puede ver y hacer dentro del sistema. A cada cajero se le asigna un rol y ese rol determina sus permisos exactos en toda la aplicacion.


Tipos de roles

HandyCafe ofrece tres tipos de roles:

Administrador

El rol de Administrador otorga acceso sin restricciones a todas las funciones del sistema. Los administradores pueden gestionar cajeros, ver todos los reportes, modificar configuraciones y realizar cualquier operacion. Este rol esta destinado a propietarios de cafes y gerentes principales que necesitan control total.

Siempre existe al menos una cuenta de Administrador en el sistema. El rol de Administrador no puede eliminarse ni reducirse en permisos.

Predeterminado

El rol Predeterminado no tiene permisos especiales asignados. Un cajero con el rol Predeterminado puede iniciar sesion y realizar operaciones basicas pero no puede acceder a areas restringidas como gestion de miembros, reportes o configuracion de consolas. Utilicelo como punto de partida para nuevos empleados que solo necesitan manejar tareas basicas.

Personalizado

Los roles personalizados le permiten definir exactamente que permisos tiene un cajero. Usted elige un nombre, establece un nivel y luego activa o desactiva marcas de permisos individuales en seis categorias. Esto le da control detallado sobre lo que cada miembro del personal puede acceder.


Categorias de permisos

HandyCafe tiene 22 marcas de permisos individuales organizadas en 6 categorias. Cada marca controla una accion o vista especifica dentro del sistema.

1. Autenticacion (1 marca)

Marca Descripcion
CLIENT_LOGIN Permite al cajero iniciar sesion en PCs cliente (iniciar sesiones en nombre de los clientes)

Sin este permiso, un cajero no puede iniciar ni gestionar sesiones de cliente.

2. Miembros (6 marcas)

Marca Descripcion
VIEW Ver la lista de miembros y detalles de miembros
ADD Crear nuevas cuentas de miembro
DELETE Eliminar cuentas de miembro del sistema
UPDATE Editar informacion de miembros existentes (nombre, saldo, etc.)
DISPLAY_EMAIL Ver las direcciones de correo electronico de los miembros en la lista
DISPLAY_GSM Ver los numeros de telefono de los miembros en la lista

Un cajero con solo VIEW puede explorar la lista de miembros pero no puede crear, editar ni eliminar ningun miembro. Las marcas DISPLAY_EMAIL y DISPLAY_GSM controlan si la informacion de contacto sensible es visible. Esto es util para el cumplimiento de privacidad donde no todo el personal debe ver datos personales.

3. Consolas (4 marcas)

Marca Descripcion
VIEW Ver la pagina de consolas y las tarjetas de estado de consolas
ADD Registrar nuevas consolas de juego en el sistema
DELETE Eliminar consolas del sistema
UPDATE Editar detalles de consolas (nombre, direccion MAC, precios)

4. Registros (4 marcas)

Marca Descripcion
VIEW Acceder a la pagina de registros
DISPLAY_FULL Ver el historial completo de registros (todas las fechas)
DISPLAY_TODAY Ver solo las entradas de registro del dia de hoy
DELETE Eliminar entradas de registro

Si un cajero tiene VIEW y DISPLAY_TODAY pero no DISPLAY_FULL, solo puede ver las entradas de registro del dia actual. Esto es util para supervisores de turno que necesitan monitorear la actividad actual sin acceder a registros historicos.

5. Reportes (3 marcas)

Marca Descripcion
PAGE_VIEW Acceder a la pagina de reportes/reporte de caja
DISPLAY_FULL Ver el historial completo de reportes (todas las fechas)
DISPLAY_TODAY Ver solo los datos de reportes del dia de hoy

Similar a los registros, los permisos de reportes le permiten controlar si el personal puede ver el historial financiero completo o solo las cifras del dia actual. Un cajero con PAGE_VIEW y DISPLAY_TODAY puede revisar las transacciones de su propio turno pero no puede acceder a datos de ingresos historicos.

6. Metodos de pago (4 marcas)

Marca Descripcion
MANAGE Acceder al area de gestion de metodos de pago
ADD Crear nuevos metodos de pago (efectivo, tarjeta, pago movil, etc.)
DELETE Eliminar metodos de pago del sistema
UPDATE Editar detalles de metodos de pago existentes

Resumen

Categoria Marcas Total
Autenticacion CLIENT_LOGIN 1
Miembros VIEW, ADD, DELETE, UPDATE, DISPLAY_EMAIL, DISPLAY_GSM 6
Consolas VIEW, ADD, DELETE, UPDATE 4
Registros VIEW, DISPLAY_FULL, DISPLAY_TODAY, DELETE 4
Reportes PAGE_VIEW, DISPLAY_FULL, DISPLAY_TODAY 3
Metodos de pago MANAGE, ADD, DELETE, UPDATE 4
Total 22

Como funcionan los permisos

Cada categoria de permisos tiene un conjunto de marcas de permisos individuales. Cada marca puede habilitarse o deshabilitarse de forma independiente usando casillas de verificacion en el editor de roles.

La interfaz proporciona casillas para cada permiso. Simplemente active o desactive los permisos que desea otorgar o revocar. El sistema maneja el almacenamiento subyacente automaticamente. No necesita calcular ningun valor manualmente.

Por ejemplo, en la categoria Miembros puede habilitar o deshabilitar independientemente: VIEW, ADD, DELETE, UPDATE, DISPLAY_EMAIL y DISPLAY_GSM. Un cajero con solo VIEW y UPDATE activados puede ver y editar miembros pero no puede agregar ni eliminar.


Crear una cuenta de cajero

  1. Navegue a Gestion > Cajeros en la aplicacion del servidor.
  2. Haga clic en el boton Agregar cajero.
  3. Ingrese el nombre de usuario del cajero. Este es el que usara para iniciar sesion.
  4. Establezca una contrasena. Elija una contrasena segura. Esta cuenta puede tener acceso a datos financieros e informacion de clientes.
  5. Seleccione un rol del menu desplegable. Puede elegir Administrador, Predeterminado o cualquier rol personalizado que haya creado.
  6. Haga clic en Guardar para crear la cuenta.

El nuevo cajero ahora puede iniciar sesion en el servidor de HandyCafe usando sus credenciales.


Crear un rol personalizado

  1. Navegue a Gestion > Roles de cajero en la aplicacion del servidor.
  2. Haga clic en el boton Agregar rol.
  3. Ingrese un nombre de rol (por ejemplo, "Supervisor de turno", "Cajero junior", "Personal nocturno").
  4. Establezca el nivel del rol. Los niveles mas altos indican mayor autoridad. Se usa para ordenamiento de visualizacion y jerarquia organizacional.
  5. Active o desactive los permisos individuales en las seis categorias. Cada casilla corresponde a una de las 22 configuraciones de permisos.
  6. Haga clic en Guardar para crear el rol.

Una vez creado, puede asignar este rol a cualquier cuenta de cajero.


Aplicacion en el servidor

Los permisos se aplican en el lado del servidor, no solo se ocultan en la interfaz. Incluso si alguien intentara evadir la interfaz del cliente o manipular el codigo del frontend, el servidor valida cada solicitud contra los permisos del rol del cajero antes de ejecutarla.

Esto significa que:

  • Un cajero sin MEMBER_DELETE no puede eliminar un miembro, incluso enviando una solicitud directa a la API.
  • Un cajero sin REPORT_DISPLAY_FULL no puede recuperar datos de reportes historicos, sin importar como acceda al sistema.
  • Todas las verificaciones de permisos ocurren en el backend de Rust antes de que se realice cualquier operacion de base de datos.

Seguridad: limitacion de velocidad

Para proteger contra ataques de fuerza bruta, HandyCafe aplica limitacion de velocidad en el inicio de sesion:

  • 5 intentos fallidos de inicio de sesion dentro de una ventana de 10 minutos activa un bloqueo automatico.
  • El bloqueo dura 15 minutos, durante los cuales no se aceptan intentos de inicio de sesion para esa cuenta.
  • Despues de que expira el periodo de bloqueo, el cajero puede intentar de nuevo.

Esto aplica tanto a la pantalla de inicio de sesion del servidor como al inicio de sesion del cajero en PCs cliente.


Gestion de turnos

La actividad de cada cajero se registra individualmente durante su turno:

  • Todas las transacciones (pagos de sesiones, pagos de pedidos, etc.) se registran con la identidad del cajero.
  • La caja registradora hace seguimiento del balance de apertura y cierre para cada turno de cajero por separado.
  • Los reportes de turno pueden generarse por cajero, mostrando exactamente cuanto ingreso proceso durante su turno.
  • Cuando un cajero cierra sesion, su turno se cierra y un resumen esta disponible para revision.

Este seguimiento por cajero garantiza la rendicion de cuentas y facilita la identificacion de discrepancias al final de cada turno.


Ejemplos de permisos

Escenario 1: Cajero basico Un nuevo empleado que solo necesita iniciar/detener sesiones y cobrar pagos. Asignele un rol personalizado con solo CLIENT_LOGIN habilitado. No podra ver miembros, reportes, registros ni consolas.

Escenario 2: Supervisor de turno Un empleado de confianza que supervisa el local. Asignele un rol con CLIENT_LOGIN, MEMBER_VIEW, MEMBER_UPDATE, CONSOLE_VIEW, REPORT_PAGE_VIEW y REPORT_DISPLAY_TODAY. Podra gestionar sesiones, ver (pero no eliminar) miembros, ver consolas y consultar los ingresos del dia, pero no podra acceder a reportes historicos completos ni modificar metodos de pago.

Escenario 3: Gerente nocturno Un gerente que maneja el turno nocturno de forma independiente. Otorguele la mayoria de permisos excepto MEMBER_DELETE, LOG_DELETE y PAYMENT_METHOD_DELETE. Puede gestionar todo durante su turno pero no puede eliminar datos criticos permanentemente.

Escenario 4: Personal con restriccion de privacidad Un cajero que no debe ver los datos de contacto de los clientes. Cree un rol con MEMBER_VIEW habilitado pero DISPLAY_EMAIL y DISPLAY_GSM deshabilitados. Podra buscar miembros por nombre pero la informacion de contacto personal estara oculta.