HandyCafe Docs
owner

Role i uprawnienia kasjerów

HandyCafe wykorzystuje kontrolę dostępu opartą na rolach (RBAC) do zarządzania tym, co każdy pracownik może widzieć i robić w systemie. Każdy kasjer ma przypisaną rolę, a ta rola określa dokładne uprawnienia w całej aplikacji.


Typy ról

HandyCafe udostępnia trzy typy ról:

Administrator

Rola Administratora przyznaje nieograniczony dostęp do każdej funkcji systemu. Administratorzy mogą zarządzać kasjerami, wyświetlać wszystkie raporty, modyfikować ustawienia i wykonywać dowolne operacje. Ta rola jest przeznaczona dla właścicieli kafejek i starszych kierowników potrzebujących pełnej kontroli.

W systemie zawsze istnieje co najmniej jedno konto Administratora. Rola Administratora nie może być usunięta ani mieć ograniczonych uprawnień.

Domyślna

Rola Domyślna nie ma przypisanych specjalnych uprawnień. Kasjer z rolą Domyślną może się zalogować i wykonywać podstawowe operacje, ale nie ma dostępu do obszarów zastrzeżonych takich jak zarządzanie członkami, raportowanie czy konfiguracja konsol. Użyj jej jako punktu wyjścia dla nowych pracowników, którzy potrzebują obsługi tylko podstawowych zadań.

Niestandardowa

Role niestandardowe pozwalają dokładnie określać, jakie uprawnienia ma kasjer. Wybierasz nazwę, ustawiasz poziom, a następnie zaznaczasz lub odznaczasz poszczególne flagi uprawnień w sześciu kategoriach. Daje to szczegółową kontrolę nad dostępem każdego pracownika.


Kategorie uprawnień

HandyCafe posiada 22 indywidualne flagi uprawnień zorganizowane w 6 kategorii. Każda flaga kontroluje konkretną akcję lub widok w systemie.

1. Uwierzytelnianie (1 flaga)

Flaga Opis
CLIENT_LOGIN Pozwala kasjerowi logować komputery klienckie (uruchamiać sesje w imieniu klientów)

Bez tego uprawnienia kasjer nie może uruchamiać ani zarządzać sesjami klientów.

2. Członkowie (6 flag)

Flaga Opis
VIEW Wyświetlanie listy członków i szczegulow członków
ADD Tworzenie nowych kont członkowskich
DELETE Usuwanie kont członkowskich z systemu
UPDATE Edycja istniejących danych członków (imię, saldo itp.)
DISPLAY_EMAIL Wyświetlanie adresów e-mail członków na liście członków
DISPLAY_GSM Wyświetlanie numerów telefonów członków na liście członków

Kasjer z wyłączonym VIEW może przeglądać listę członków, ale nie może tworzyć, edytować ani usuwać członków. Flagi DISPLAY_EMAIL i DISPLAY_GSM kontrolują widoczność wrażliwych danych kontaktowych. Jest to przydatne dla zachowania prywatności, gdy nie cały personel powinien widzieć dane osobowe.

3. Konsole (4 flagi)

Flaga Opis
VIEW Wyświetlanie strony konsol i kart statusu konsol
ADD Rejestracja nowych konsol do gier w systemie
DELETE Usuwanie konsol z systemu
UPDATE Edycja danych konsol (nazwa, adres MAC, cennik)

4. Logi (4 flagi)

Flaga Opis
VIEW Dostęp do strony logów
DISPLAY_FULL Wyświetlanie pełnej historii logów (wszystkie daty)
DISPLAY_TODAY Wyświetlanie tylko wpisów logów z dzisiaj
DELETE Usuwanie wpisów logów

Jeśli kasjer ma VIEW i DISPLAY_TODAY, ale nie DISPLAY_FULL, może widzieć tylko wpisy logów z bieżącego dnia. Jest to przydatne dla kierowników zmian, którzy muszą monitorować bieżącą aktywność bez dostępu do rejestrów historycznych.

5. Raporty (3 flagi)

Flaga Opis
PAGE_VIEW Dostęp do strony raportów/raportu kasowego
DISPLAY_FULL Wyświetlanie pełnej historii raportów (wszystkie daty)
DISPLAY_TODAY Wyświetlanie tylko danych z dzisiaj

Podobnie jak w przypadku logów, uprawnienia do raportów pozwalają kontrolować, czy personel może widzieć pełną historię finansową, czy tylko dane z bieżącego dnia. Kasjer z PAGE_VIEW i DISPLAY_TODAY może przeglądać transakcje swojej zmiany, ale nie ma dostępu do historycznych danych o przychodach.

6. Metody płatności (4 flagi)

Flaga Opis
MANAGE Dostęp do obszaru zarządzania metodami płatności
ADD Tworzenie nowych metod płatności (gotówka, karta, płatność mobilna itp.)
DELETE Usuwanie metod płatności z systemu
UPDATE Edycja danych istniejących metod płatności

Podsumowanie

Kategoria Flagi Łącznie
Uwierzytelnianie CLIENT_LOGIN 1
Członkowie VIEW, ADD, DELETE, UPDATE, DISPLAY_EMAIL, DISPLAY_GSM 6
Konsole VIEW, ADD, DELETE, UPDATE 4
Logi VIEW, DISPLAY_FULL, DISPLAY_TODAY, DELETE 4
Raporty PAGE_VIEW, DISPLAY_FULL, DISPLAY_TODAY 3
Metody płatności MANAGE, ADD, DELETE, UPDATE 4
Razem 22

Jak działają uprawnienia

Każda kategoria uprawnień posiada zestaw indywidualnych flag uprawnień. Każda flaga może być włączona lub wyłączona niezależnie za pomocą pól wyboru w edytorze ról.

Interfejs używa pól wyboru dla każdego uprawnienia. Po prostu zaznacz lub odznacz uprawnienia, które chcesz przyznać lub cofnąć. System automatycznie obsługuje przechowywanie danych - nie musisz ręcznie obliczać żadnych wartości.

Na przykład w kategorii Członkowie możesz niezależnie włączać lub wyłączać: VIEW, ADD, DELETE, UPDATE, DISPLAY_EMAIL i DISPLAY_GSM. Kasjer z zaznaczonymi tylko VIEW i UPDATE może widzieć i edytować członków, ale nie może ich dodawać ani usuwać.


Tworzenie konta kasjera

  1. Przejdź do Zarządzanie > Kasjerzy w aplikacji serwerowej.
  2. Kliknij przycisk Dodaj kasjera.
  3. Wpisz nazwę użytkownika kasjera. Będzie jej używał do logowania.
  4. Ustaw hasło. Wybierz silne hasło. To konto może mieć dostęp do danych finansowych i informacji o klientach.
  5. Wybierz rolę z listy rozwijanej. Możesz wybrać Administratora, Domyślną lub dowolną niestandardową rolę, którą utworzyłeś.
  6. Kliknij Zapisz, aby utworzyć konto.

Nowy kasjer może teraz zalogować się do serwera HandyCafe przy użyciu swoich poświadczeń.


Tworzenie niestandardowej roli

  1. Przejdź do Zarządzanie > Role kasjerów w aplikacji serwerowej.
  2. Kliknij przycisk Dodaj rolę.
  3. Wpisz nazwę roli (np. "Kierownik zmiany", "Młodszy kasjer", "Personel nocny").
  4. Ustaw poziom roli. Wyższe poziomy wskazują większą władzę. Jest to używane do porządkowania wyświetlania i hierarchii organizacyjnej.
  5. Zaznacz lub odznacz poszczególne uprawnienia we wszystkich sześciu kategoriach. Każde pole wyboru odpowiada jednemu z 22 ustawień uprawnień.
  6. Kliknij Zapisz, aby utworzyć rolę.

Po utworzeniu możesz przypisać tę rolę do dowolnego konta kasjera.


Egzekwowanie po stronie serwera

Uprawnienia są egzekwowane po stronie serwera, nie tylko ukrywane w interfejsie. Nawet jeśli ktoś obejdzie interfejs klienta lub zmanipuluje kod frontendowy, serwer waliduje każde zadanie względem uprawnień roli kasjera przed jego wykonaniem.

Oznacza to:

  • Kasjer bez MEMBER_DELETE nie może usunąć członka, nawet wysyłając bezpośrednie zadanie API.
  • Kasjer bez REPORT_DISPLAY_FULL nie może pobrać historycznych danych raportów niezależnie od sposobu dostępu do systemu.
  • Wszystkie sprawdzenia uprawnień odbywają się w backendzie Rust przed wykonaniem jakiejkolwiek operacji na bazie danych.

Bezpieczeństwo: ograniczanie częstotliwości

W celu ochrony przed atakami brute-force HandyCafe egzekwuje ograniczanie częstotliwości logowania:

  • 5 nieudanych prób logowania w ciągu 10-minutowego okna wyzwala automatyczną blokadę.
  • Blokada trwa 15 minut, podczas których żadne próby logowania nie są akceptowane dla tego konta.
  • Po wygaśnięciu okresu blokady kasjer może spróbować ponownie.

Dotyczy to zarówno ekranu logowania serwera, jak i logowania kasjera na komputerach klienckich.


Zarządzanie zmianami

Aktywność każdego kasjera jest śledzona indywidualnie przez całą zmianę:

  • Wszystkie transakcje (płatności za sesje, płatności za zamówienia itp.) są rejestrowane z identyfikacją kasjera.
  • Kasa śledzi saldo otwarcia i zamknięcia dla każdej zmiany kasjera osobno.
  • Raporty zmianowe mogą być generowane per kasjer, pokazując dokładnie ile przychodu przetworzył podczas zmiany.
  • Gdy kasjer się wylogowuje, zmiana jest zamykana i podsumowanie jest dostępne do przeglądnięcia.

Śledzenie per kasjer zapewnia rozliczalność i ułatwia identyfikację rozbieżności na koniec każdej zmiany.


Przykłady uprawnień

Scenariusz 1: Podstawowy kasjer Nowy pracownik, który potrzebuje tylko uruchamiać/zatrzymywać sesje i przyjmować płatności. Przypisz mu niestandardową rolę z włączonym tylko CLIENT_LOGIN. Nie może wyświetlać członków, raportów, logów ani konsol.

Scenariusz 2: Kierownik zmiany Zaufany pracownik nadzorujący pracę na hali. Przypisz mu rolę z CLIENT_LOGIN, MEMBER_VIEW, MEMBER_UPDATE, CONSOLE_VIEW, REPORT_PAGE_VIEW i REPORT_DISPLAY_TODAY. Może zarządzać sesjami, wyświetlać (ale nie usuwać) członków, widzieć konsole i sprawdzać dzisiejsze przychody, ale nie ma dostępu do pełnych raportów historycznych ani nie może modyfikować metod płatności.

Scenariusz 3: Kierownik nocny Kierownik obsługujący nocną zmianę samodzielnie. Przyznaj mu większość uprawnień z wyjątkiem MEMBER_DELETE, LOG_DELETE i PAYMENT_METHOD_DELETE. Może zarządzać wszystkim podczas zmiany, ale nie może trwale usuwać krytycznych danych.

Scenariusz 4: Personel z ograniczeniami prywatności Kasjer, który nie powinien widzieć danych kontaktowych klientów. Utwórz rolę z włączonym MEMBER_VIEW, ale z wyłączonymi DISPLAY_EMAIL i DISPLAY_GSM. Może wyszukiwać członków po imieniu, ale dane kontaktowe są ukryte.