HandyCafe Docs
owner

Rôles et permissions des caissiers

HandyCafe utilise le contrôle d'accès basé sur les rôles (RBAC) pour gérer ce que chaque membre du personnel peut voir et faire dans le système. Chaque caissier se voit attribuer un rôle qui détermine ses permissions exactes dans l'ensemble de l'application.


Types de rôles

HandyCafe propose trois types de rôles :

Admin

Le rôle Admin accorde un accès illimité à toutes les fonctionnalités du système. Les administrateurs peuvent gérer les caissiers, consulter tous les rapports, modifier les paramètres et effectuer toute opération. Ce rôle est destiné aux propriétaires de cafés et aux responsables seniors qui ont besoin d'un contrôle total.

Il y a toujours au moins un compte Admin dans le système. Le rôle Admin ne peut pas être supprimé ni voir ses permissions réduites.

Par défaut

Le rôle Par défaut n'a aucune permission spéciale attribuée. Un caissier avec le rôle Par défaut peut se connecter et effectuer des opérations de base mais ne peut pas accéder aux zones restreintes comme la gestion des membres, les rapports ou la configuration des consoles. Utilisez-le comme point de départ pour les nouvelles recrues qui n'ont besoin de gérer que des tâches élémentaires.

Personnalisé

Les rôles personnalisés vous permettent de définir exactement les permissions d'un caissier. Vous choisissez un nom, définissez un niveau, puis cochez ou décochez les indicateurs de permissions individuels dans six catégories. Cela vous donne un contrôle précis sur les accès de chaque membre du personnel.


Catégories de permissions

HandyCafe dispose de 22 indicateurs de permissions individuels organisés en 6 catégories. Chaque indicateur contrôle une action ou une vue spécifique dans le système.

1. Authentification (1 indicateur)

Indicateur Description
CLIENT_LOGIN Autorise le caissier à connecter les PC clients (démarrer des sessions au nom des clients)

Sans cette permission, un caissier ne peut ni démarrer ni gérer les sessions clients.

2. Membres (6 indicateurs)

Indicateur Description
VIEW Voir la liste des membres et les détails des membres
ADD Créer de nouveaux comptes membres
DELETE Supprimer des comptes membres du système
UPDATE Modifier les informations d'un membre existant (nom, solde, etc.)
DISPLAY_EMAIL Voir les adresses e-mail des membres dans la liste
DISPLAY_GSM Voir les numéros de téléphone des membres dans la liste

Un caissier avec uniquement VIEW peut parcourir la liste des membres mais ne peut pas en créer, modifier ou supprimer. Les indicateurs DISPLAY_EMAIL et DISPLAY_GSM contrôlent si les informations de contact sensibles sont visibles. C'est utile pour la conformité en matière de vie privée lorsque tout le personnel ne doit pas voir les données personnelles.

3. Consoles (4 indicateurs)

Indicateur Description
VOIR Voir la page des consoles et les cartes de statut des consoles
ADD Enregistrer de nouvelles consoles de jeux dans le système
DELETE Retirer des consoles du système
UPDATE Modifier les détails des consoles (nom, adresse MAC, tarification)

4. Journaux (4 indicateurs)

Indicateur Description
VOIR Accéder à la page des journaux
DISPLAY_FULL Voir l'historique complet des journaux (toutes les dates)
DISPLAY_TODAY Voir uniquement les entrées du jour
DELETE Supprimer des entrées de journal

Si un caissier dispose de VIEW et DISPLAY_TODAY mais pas de DISPLAY_FULL, il ne peut voir que les entrées de journal de la journée en cours. C'est utile pour les superviseurs de quart qui doivent surveiller l'activité courante sans accéder aux historiques.

5. Rapports (3 indicateurs)

Indicateur Description
PAGE_VIEW Accéder à la page des rapports/rapport de caisse
DISPLAY_FULL Voir l'historique complet des rapports (toutes les dates)
DISPLAY_TODAY Voir uniquement les données du jour

Comme pour les journaux, les permissions de rapport vous permettent de contrôler si le personnel peut voir l'historique financier complet ou uniquement les chiffres du jour. Un caissier avec PAGE_VIEW et DISPLAY_TODAY peut consulter les transactions de son propre quart mais ne peut pas accéder aux données historiques de revenus.

6. Modes de paiement (4 indicateurs)

Indicateur Description
MANAGE Accéder à la zone de gestion des modes de paiement
ADD Créer de nouveaux modes de paiement (espèces, carte, paiement mobile, etc.)
DELETE Retirer des modes de paiement du système
UPDATE Modifier les détails d'un mode de paiement existant

Récapitulatif

Catégorie Indicateurs Total
Authentification CLIENT_LOGIN 1
Membres AFFICHER, AJOUTER, SUPPRIMER, MISE À JOUR, DISPLAY_EMAIL, DISPLAY_GSM 6
Consoles AFFICHER, AJOUTER, SUPPRIMER, METTRE À JOUR 4
Journaux VUE, DISPLAY_FULL, DISPLAY_TODAY, DELETE 4
Rapports PAGE_VIEW, DISPLAY_FULL, DISPLAY_TODAY 3
Modes de paiement GÉRER, AJOUTER, SUPPRIMER, METTRE À JOUR 4
Total 22

Fonctionnement des permissions

Chaque catégorie de permissions possède un ensemble d'indicateurs individuels. Chaque indicateur peut être activé ou désactivé indépendamment à l'aide de cases à cocher dans l'éditeur de rôles.

L'interface propose des cases à cocher pour chaque permission. Cochez ou décochez simplement les permissions que vous souhaitez accorder ou révoquer. Le système gère automatiquement le stockage sous-jacent : vous n'avez pas besoin de calculer de valeurs manuellement.

Par exemple, dans la catégorie Membres, vous pouvez activer ou désactiver indépendamment : VIEW, ADD, DELETE, UPDATE, DISPLAY_EMAIL et DISPLAY_GSM. Un caissier avec uniquement VIEW et UPDATE cochés peut voir et modifier les membres, mais ne peut pas en ajouter ni en supprimer.


Créer un compte caissier

  1. Rendez-vous dans Gestion > Caissiers dans l'application serveur.
  2. Cliquez sur le bouton Ajouter un caissier.
  3. Saisissez le nom d'utilisateur du caissier. C'est ce qu'il utilisera pour se connecter.
  4. Définissez un mot de passe. Choisissez un mot de passe fort. Ce compte peut avoir accès à des données financières et aux informations des clients.
  5. Sélectionnez un rôle dans le menu déroulant. Vous pouvez choisir Admin, Par défaut ou tout rôle personnalisé que vous avez créé.
  6. Cliquez sur Enregistrer pour créer le compte.

Le nouveau caissier peut désormais se connecter au serveur HandyCafe avec ses identifiants.


Créer un rôle personnalisé

  1. Rendez-vous dans Gestion > Rôles des caissiers dans l'application serveur.
  2. Cliquez sur le bouton Ajouter un rôle.
  3. Saisissez un nom de rôle (par exemple "Superviseur de quart", "Caissier junior", "Personnel de nuit").
  4. Définissez le niveau du rôle. Les niveaux supérieurs indiquent plus d'autorité. Il est utilisé pour l'ordre d'affichage et la hiérarchie organisationnelle.
  5. Cochez ou décochez les permissions individuelles dans les six catégories. Chaque case à cocher correspond à l'un des 22 paramètres de permission.
  6. Cliquez sur Enregistrer pour créer le rôle.

Une fois créé, vous pouvez attribuer ce rôle à n'importe quel compte caissier.


Application côté serveur

Les permissions sont appliquées côté serveur et pas uniquement masquées dans l'interface. Même si quelqu'un parvenait à contourner l'interface client ou à manipuler le code frontend, le serveur valide chaque requête par rapport aux permissions du rôle du caissier avant de l'exécuter.

Cela signifie :

  • Un caissier sans MEMBER_DELETE ne peut pas supprimer un membre, même en envoyant une requête API directe.
  • Un caissier sans REPORT_DISPLAY_FULL ne peut pas récupérer les données de rapports historiques, quelle que soit la méthode d'accès au système.
  • Tous les contrôles de permissions s'effectuent dans le backend Rust avant toute opération en base de données.

Sécurité : limitation du débit

Pour se protéger contre les attaques par force brute, HandyCafe applique une limitation du débit de connexion :

  • 5 tentatives de connexion échouées dans une fenêtre de 10 minutes déclenche un verrouillage automatique.
  • Le verrouillage dure 15 minutes, durant lesquelles aucune tentative de connexion n'est acceptée pour ce compte.
  • À l'expiration de la période de verrouillage, le caissier peut réessayer.

Cela s'applique à la fois à l'écran de connexion du serveur et à la connexion du caissier sur les PC clients.


Gestion des quarts

L'activité de chaque caissier est suivie individuellement tout au long de son quart :

  • Toutes les transactions (paiements de sessions, paiements de commandes, etc.) sont enregistrées avec l'identité du caissier.
  • La caisse enregistreuse suit les soldes d'ouverture et de fermeture pour chaque quart de caissier séparément.
  • Des rapports de quart peuvent être générés par caissier, montrant exactement le montant des revenus traités durant leur quart.
  • Lorsqu'un caissier se déconnecte, son quart est clôturé et une synthèse est disponible pour consultation.

Ce suivi par caissier garantit la responsabilité et facilite l'identification des écarts en fin de quart.


Exemples de permissions

Scénario 1 : Caissier de base Une nouvelle recrue qui n'a besoin que de démarrer/arrêter des sessions et d'encaisser des paiements. Attribuez-lui un rôle personnalisé avec uniquement CLIENT_LOGIN activé. Elle ne peut pas voir les membres, les rapports, les journaux ou les consoles.

Scénario 2 : Superviseur de quart Un employé de confiance qui supervise la salle. Attribuez-lui un rôle avec CLIENT_LOGIN, MEMBER_VIEW, MEMBER_UPDATE, CONSOLE_VIEW, REPORT_PAGE_VIEW et REPORT_DISPLAY_TODAY. Il peut gérer les sessions, consulter (mais pas supprimer) les membres, voir les consoles et vérifier les revenus du jour, mais ne peut pas accéder aux rapports historiques complets ni modifier les modes de paiement.

Scénario 3 : Responsable de nuit Un responsable qui gère le quart de nuit de manière autonome. Accordez-lui la plupart des permissions sauf MEMBER_DELETE, LOG_DELETE et PAYMENT_METHOD_DELETE. Il peut tout gérer durant son quart mais ne peut pas supprimer définitivement des données critiques.

Scénario 4 : Personnel avec restriction de confidentialité Un caissier qui ne devrait pas voir les coordonnées des clients. Créez un rôle avec MEMBER_VIEW activé mais DISPLAY_EMAIL et DISPLAY_GSM désactivés. Il peut rechercher des membres par nom mais les coordonnées personnelles sont masquées.