Kassierer-Rollen und Berechtigungen
HandyCafe verwendet rollenbasierte Zugangskontrolle (RBAC), um zu steuern, was jeder Mitarbeiter im System sehen und tun kann. Jedem Kassierer wird eine Rolle zugewiesen, und diese Rolle bestimmt seine genauen Berechtigungen in der gesamten Anwendung.
Rollentypen
HandyCafe bietet drei Arten von Rollen:
Admin
Die Admin-Rolle gewährt uneingeschränkten Zugriff auf jede Funktion im System. Admins können Kassierer verwalten, alle Berichte einsehen, Einstellungen ändern und jede Operation ausführen. Diese Rolle ist für Cafe-Inhaber und leitende Manager vorgesehen, die volle Kontrolle benötigen.
Es gibt immer mindestens ein Admin-Konto im System. Die Admin-Rolle kann nicht gelöscht oder in ihren Berechtigungen eingeschränkt werden.
Standard
Die Standardrolle hat keine besonderen Berechtigungen zugewiesen. Ein Kassierer mit der Standardrolle kann sich anmelden und grundlegende Operationen durchführen, hat aber keinen Zugriff auf eingeschränkte Bereiche wie Mitgliederverwaltung, Berichtswesen oder Konsolenkonfiguration. Verwenden Sie diese als Ausgangspunkt für neue Mitarbeiter, die nur grundlegende Aufgaben erledigen müssen.
Benutzerdefiniert
Benutzerdefinierte Rollen ermöglichen es Ihnen, exakt festzulegen, welche Berechtigungen ein Kassierer hat. Sie vergeben einen Namen, legen eine Stufe fest und aktivieren oder deaktivieren dann einzelne Berechtigungsflags in sechs Kategorien. Dies gibt Ihnen detaillierte Kontrolle darüber, auf was jeder Mitarbeiter zugreifen kann.
Berechtigungskategorien
HandyCafe hat 22 einzelne Berechtigungsflags, organisiert in 6 Kategorien. Jedes Flag steuert eine bestimmte Aktion oder Ansicht im System.
1. Authentifizierung (1 Flag)
| Flag | Beschreibung |
|---|---|
| CLIENT_LOGIN | Erlaubt dem Kassierer, Client-PCs anzumelden (Sitzungen im Auftrag von Kunden zu starten) |
Ohne diese Berechtigung kann ein Kassierer keine Client-Sitzungen starten oder verwalten.
2. Mitglieder (6 Flags)
| Flag | Beschreibung |
|---|---|
| VIEW | Mitgliederliste und Mitgliederdetails einsehen |
| ADD | Neue Mitgliedskonten erstellen |
| DELETE | Mitgliedskonten aus dem System entfernen |
| UPDATE | Bestehende Mitgliederinformationen bearbeiten (Name, Guthaben usw.) |
| DISPLAY_EMAIL | E-Mail-Adressen der Mitglieder in der Mitgliederliste anzeigen |
| DISPLAY_GSM | Telefonnummern der Mitglieder in der Mitgliederliste anzeigen |
Ein Kassierer mit nur VIEW kann die Mitgliederliste durchsuchen, aber keine Mitglieder erstellen, bearbeiten oder entfernen. Die Flags DISPLAY_EMAIL und DISPLAY_GSM steuern, ob sensible Kontaktinformationen sichtbar sind. Dies ist nützlich für den Datenschutz, wenn nicht alle Mitarbeiter persönliche Daten sehen sollen.
3. Konsolen (4 Flags)
| Flag | Beschreibung |
|---|---|
| VIEW | Die Konsolenseite und Konsolen-Statuskarten einsehen |
| ADD | Neue Spielkonsolen im System registrieren |
| DELETE | Konsolen aus dem System entfernen |
| UPDATE | Konsolendetails bearbeiten (Name, MAC-Adresse, Preise) |
4. Protokolle (4 Flags)
| Flag | Beschreibung |
|---|---|
| VIEW | Auf die Protokollseite zugreifen |
| DISPLAY_FULL | Den vollständigen Protokollverlauf einsehen (alle Daten) |
| DISPLAY_TODAY | Nur die Protokolleinträge von heute einsehen |
| DELETE | Protokolleinträge löschen |
Wenn ein Kassierer VIEW und DISPLAY_TODAY hat, aber nicht DISPLAY_FULL, kann er nur die Protokolleinträge des aktuellen Tages sehen. Dies ist nützlich für Schichtleiter, die die aktuelle Aktivität überwachen müssen, ohne auf historische Aufzeichnungen zugreifen zu können.
5. Berichte (3 Flags)
| Flag | Beschreibung |
|---|---|
| PAGE_VIEW | Auf die Berichts-/Kassenberichtseite zugreifen |
| DISPLAY_FULL | Den vollständigen Berichtsverlauf einsehen (alle Daten) |
| DISPLAY_TODAY | Nur die heutigen Berichtsdaten einsehen |
Ähnlich wie bei Protokollen können Sie mit Berichtsberechtigungen steuern, ob Mitarbeiter den vollständigen Finanzverlauf oder nur die Zahlen des aktuellen Tages sehen können. Ein Kassierer mit PAGE_VIEW und DISPLAY_TODAY kann die Transaktionen seiner eigenen Schicht überprüfen, hat aber keinen Zugriff auf historische Einnahmedaten.
6. Zahlungsmethoden (4 Flags)
| Flag | Beschreibung |
|---|---|
| MANAGE | Auf den Verwaltungsbereich für Zahlungsmethoden zugreifen |
| ADD | Neue Zahlungsmethoden erstellen (Bar, Karte, Mobile Zahlung usw.) |
| DELETE | Zahlungsmethoden aus dem System entfernen |
| UPDATE | Bestehende Zahlungsmethodendetails bearbeiten |
Zusammenfassung
| Kategorie | Flags | Gesamt |
|---|---|---|
| Authentifizierung | CLIENT_LOGIN | 1 |
| Mitglieder | VIEW, ADD, DELETE, UPDATE, DISPLAY_EMAIL, DISPLAY_GSM | 6 |
| Konsolen | VIEW, ADD, DELETE, UPDATE | 4 |
| Protokolle | VIEW, DISPLAY_FULL, DISPLAY_TODAY, DELETE | 4 |
| Berichte | PAGE_VIEW, DISPLAY_FULL, DISPLAY_TODAY | 3 |
| Zahlungsmethoden | MANAGE, ADD, DELETE, UPDATE | 4 |
| Gesamt | 22 |
Funktionsweise der Berechtigungen
Jede Berechtigungskategorie hat eine Reihe einzelner Berechtigungsflags. Jedes Flag kann unabhängig über Kontrollkästchen im Rolleneditor aktiviert oder deaktiviert werden.
Die Oberfläche stellt Kontrollkästchen für jede Berechtigung bereit. Aktivieren oder deaktivieren Sie einfach die gewünschten Berechtigungen. Das System übernimmt die zugrunde liegende Speicherung automatisch. Sie müssen keine Werte manuell berechnen.
In der Kategorie Mitglieder können Sie beispielsweise unabhängig voneinander aktivieren oder deaktivieren: VIEW, ADD, DELETE, UPDATE, DISPLAY_EMAIL und DISPLAY_GSM. Ein Kassierer mit nur VIEW und UPDATE kann Mitglieder sehen und bearbeiten, aber nicht hinzufügen oder löschen.
Kassierer-Konto erstellen
- Navigieren Sie zu Verwaltung > Kassierer in der Serveranwendung.
- Klicken Sie auf die Schaltfläche Kassierer hinzufügen.
- Geben Sie den Benutzernamen des Kassierers ein. Dieser wird für die Anmeldung verwendet.
- Legen Sie ein Passwort fest. Wählen Sie ein sicheres Passwort. Dieses Konto hat möglicherweise Zugriff auf Finanzdaten und Kundeninformationen.
- Wählen Sie eine Rolle aus dem Dropdown-Menü. Sie können Admin, Standard oder eine beliebige benutzerdefinierte Rolle wählen.
- Klicken Sie auf Speichern, um das Konto zu erstellen.
Der neue Kassierer kann sich nun mit seinen Zugangsdaten am HandyCafe Server anmelden.
Benutzerdefinierte Rolle erstellen
- Navigieren Sie zu Verwaltung > Kassierer-Rollen in der Serveranwendung.
- Klicken Sie auf die Schaltfläche Rolle hinzufügen.
- Geben Sie einen Rollennamen ein (z. B. "Schichtleiter", "Junior-Kassierer", "Nachtpersonal").
- Legen Sie die Rollenstufe fest. Höhere Stufen bedeuten mehr Autorität. Dies wird für die Anzeigereihenfolge und organisatorische Hierarchie verwendet.
- Aktivieren oder deaktivieren Sie einzelne Berechtigungen in allen sechs Kategorien. Jedes Kontrollkästchen entspricht einer der 22 Berechtigungseinstellungen.
- Klicken Sie auf Speichern, um die Rolle zu erstellen.
Nach der Erstellung können Sie diese Rolle jedem Kassierer-Konto zuweisen.
Serverseitige Durchsetzung
Berechtigungen werden serverseitig durchgesetzt, nicht nur in der Oberfläche ausgeblendet. Selbst wenn jemand die Clientoberfläche umgehen oder den Frontend-Code manipulieren würde, validiert der Server jede Anfrage gegen die Rollenberechtigungen des Kassierers, bevor er sie ausführt.
Das bedeutet:
- Ein Kassierer ohne MEMBER_DELETE kann kein Mitglied löschen, selbst durch Senden einer direkten API-Anfrage.
- Ein Kassierer ohne REPORT_DISPLAY_FULL kann keine historischen Berichtsdaten abrufen, unabhängig davon, wie er auf das System zugreift.
- Alle Berechtigungsprüfungen finden im Rust-Backend statt, bevor eine Datenbankoperation ausgeführt wird.
Sicherheit: Ratenbegrenzung
Zum Schutz vor Brute-Force-Angriffen erzwingt HandyCafe eine Anmelde-Ratenbegrenzung:
- 5 fehlgeschlagene Anmeldeversuche innerhalb eines 10-Minuten-Fensters lösen eine automatische Sperrung aus.
- Die Sperrung dauert 15 Minuten. In dieser Zeit werden keine Anmeldeversuche für dieses Konto akzeptiert.
- Nach Ablauf der Sperrfrist kann der Kassierer es erneut versuchen.
Dies gilt sowohl für den Server-Anmeldebildschirm als auch für die Kassierer-Anmeldung auf Client-PCs.
Schichtverwaltung
Die Aktivität jedes Kassierers wird während seiner gesamten Schicht individuell verfolgt:
- Alle Transaktionen (Sitzungszahlungen, Bestellungszahlungen usw.) werden mit der Identität des Kassierers erfasst.
- Die Kasse verfolgt den Anfangs- und Endbestand für die Schicht jedes Kassierers separat.
- Schichtberichte können pro Kassierer erstellt werden und zeigen genau, wie viel Umsatz er während seiner Schicht verarbeitet hat.
- Wenn sich ein Kassierer abmeldet, wird seine Schicht geschlossen und eine Zusammenfassung steht zur Überprüfung bereit.
Diese kassiererbezogene Verfolgung gewährleistet Rechenschaftspflicht und erleichtert die Identifizierung von Unstimmigkeiten am Ende jeder Schicht.
Berechtigungsbeispiele
Szenario 1: Basis-Kassierer Ein neuer Mitarbeiter, der nur Sitzungen starten/beenden und Zahlungen entgegennehmen muss. Weisen Sie eine benutzerdefinierte Rolle mit nur CLIENT_LOGIN zu. Er kann weder Mitglieder noch Berichte, Protokolle oder Konsolen einsehen.
Szenario 2: Schichtleiter Ein vertrauenswürdiger Mitarbeiter, der den Betrieb beaufsichtigt. Weisen Sie eine Rolle mit CLIENT_LOGIN, MEMBER_VIEW, MEMBER_UPDATE, CONSOLE_VIEW, REPORT_PAGE_VIEW und REPORT_DISPLAY_TODAY zu. Er kann Sitzungen verwalten, Mitglieder einsehen (aber nicht löschen), Konsolen sehen und die heutigen Einnahmen prüfen, hat aber keinen Zugriff auf vollständige historische Berichte oder die Änderung von Zahlungsmethoden.
Szenario 3: Nachtmanager Ein Manager, der die Spätschicht eigenständig betreut. Gewähren Sie die meisten Berechtigungen außer MEMBER_DELETE, LOG_DELETE und PAYMENT_METHOD_DELETE. Er kann alles während seiner Schicht verwalten, kann aber keine kritischen Daten dauerhaft entfernen.
Szenario 4: Datenschutz-eingeschränktes Personal Ein Kassierer, der keine Kundenkontaktdaten sehen soll. Erstellen Sie eine Rolle mit MEMBER_VIEW aktiviert, aber DISPLAY_EMAIL und DISPLAY_GSM deaktiviert. Er kann Mitglieder nach Namen suchen, aber persönliche Kontaktinformationen sind ausgeblendet.