HandyCafe Docs
owner

Role i uprawnienia kasjerow

HandyCafe wykorzystuje kontrole dostepu oparta na rolach (RBAC) do zarzadzania tym, co kazdy pracownik moze widziec i robic w systemie. Kazdy kasjer ma przypisana role, a ta rola okresla dokladne uprawnienia w calej aplikacji.


Typy rol

HandyCafe udostepnia trzy typy rol:

Administrator

Rola Administratora przyznaje nieograniczony dostep do kazdej funkcji systemu. Administratorzy moga zarzadzac kasjerami, wyswietlac wszystkie raporty, modyfikowac ustawienia i wykonywac dowolne operacje. Ta rola jest przeznaczona dla wlascicieli kafejek i starszych kierownikow potrzebujacych pelnej kontroli.

W systemie zawsze istnieje co najmniej jedno konto Administratora. Rola Administratora nie moze byc usunieta ani miec ograniczonych uprawnien.

Domyslna

Rola Domyslna nie ma przypisanych specjalnych uprawnien. Kasjer z rola Domyslna moze sie zalogowac i wykonywac podstawowe operacje, ale nie ma dostepu do obszarow zastrzezonych takich jak zarzadzanie czlonkami, raportowanie czy konfiguracja konsol. Uzyj jej jako punktu wyjscia dla nowych pracownikow, ktorzy potrzebuja obslugi tylko podstawowych zadan.

Niestandardowa

Role niestandardowe pozwalaja dokladnie okreslac, jakie uprawnienia ma kasjer. Wybierasz nazwe, ustawiasz poziom, a nastepnie zaznaczasz lub odznaczasz poszczegolne flagi uprawnien w szesciu kategoriach. Daje to szczegolowa kontrole nad dostepem kazdego pracownika.


Kategorie uprawnien

HandyCafe posiada 22 indywidualne flagi uprawnien zorganizowane w 6 kategorii. Kazda flaga kontroluje konkretna akcje lub widok w systemie.

1. Uwierzytelnianie (1 flaga)

Flaga Opis
CLIENT_LOGIN Pozwala kasjerowi logowac komputery klienckie (uruchamiac sesje w imieniu klientow)

Bez tego uprawnienia kasjer nie moze uruchamiac ani zarzadzac sesjami klientow.

2. Czlonkowie (6 flag)

Flaga Opis
VIEW Wyswietlanie listy czlonkow i szczegulow czlonkow
ADD Tworzenie nowych kont czlonkowskich
DELETE Usuwanie kont czlonkowskich z systemu
UPDATE Edycja istniejacych danych czlonkow (imie, saldo itp.)
DISPLAY_EMAIL Wyswietlanie adresow e-mail czlonkow na liscie czlonkow
DISPLAY_GSM Wyswietlanie numerow telefonow czlonkow na liscie czlonkow

Kasjer z wylaczonym VIEW moze przegladac liste czlonkow, ale nie moze tworzyc, edytowac ani usuwac czlonkow. Flagi DISPLAY_EMAIL i DISPLAY_GSM kontroluja widocznosc wrazliwych danych kontaktowych. Jest to przydatne dla zachowania prywatnosci, gdy nie caly personel powinien widziec dane osobowe.

3. Konsole (4 flagi)

Flaga Opis
VIEW Wyswietlanie 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 Dostep do strony logow
DISPLAY_FULL Wyswietlanie pelnej historii logow (wszystkie daty)
DISPLAY_TODAY Wyswietlanie tylko wpisow logow z dzisiaj
DELETE Usuwanie wpisow logow

Jesli kasjer ma VIEW i DISPLAY_TODAY, ale nie DISPLAY_FULL, moze widziec tylko wpisy logow z biezacego dnia. Jest to przydatne dla kierownikow zmian, ktorzy musza monitorowac biezaca aktywnosc bez dostepu do rejestrow historycznych.

5. Raporty (3 flagi)

Flaga Opis
PAGE_VIEW Dostep do strony raportow/raportu kasowego
DISPLAY_FULL Wyswietlanie pelnej historii raportow (wszystkie daty)
DISPLAY_TODAY Wyswietlanie tylko danych z dzisiaj

Podobnie jak w przypadku logow, uprawnienia do raportow pozwalaja kontrolowac, czy personel moze widziec pelna historie finansowa, czy tylko dane z biezacego dnia. Kasjer z PAGE_VIEW i DISPLAY_TODAY moze przegladac transakcje swojej zmiany, ale nie ma dostepu do historycznych danych o przychodach.

6. Metody platnosci (4 flagi)

Flaga Opis
MANAGE Dostep do obszaru zarzadzania metodami platnosci
ADD Tworzenie nowych metod platnosci (gotowka, karta, platnosc mobilna itp.)
DELETE Usuwanie metod platnosci z systemu
UPDATE Edycja danych istniejacych metod platnosci

Podsumowanie

Kategoria Flagi Lacznie
Uwierzytelnianie CLIENT_LOGIN 1
Czlonkowie 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 platnosci MANAGE, ADD, DELETE, UPDATE 4
Razem 22

Jak dzialaja uprawnienia

Kazda kategoria uprawnien posiada zestaw indywidualnych flag uprawnien. Kazda flaga moze byc wlaczona lub wylaczona niezaleznie za pomoca pol wyboru w edytorze rol.

Interfejs uzywa pol wyboru dla kazdego uprawnienia. Po prostu zaznacz lub odznacz uprawnienia, ktore chcesz przyznac lub cofnac. System automatycznie obsluguje przechowywanie danych - nie musisz recznie obliczac zadnych wartosci.

Na przyklad w kategorii Czlonkowie mozesz niezaleznie wlaczac lub wylaczac: VIEW, ADD, DELETE, UPDATE, DISPLAY_EMAIL i DISPLAY_GSM. Kasjer z zaznaczonymi tylko VIEW i UPDATE moze widziec i edytowac czlonkow, ale nie moze ich dodawac ani usuwac.


Tworzenie konta kasjera

  1. Przejdz do Zarzadzanie > Kasjerzy w aplikacji serwerowej.
  2. Kliknij przycisk Dodaj kasjera.
  3. Wpisz nazwe uzytkownika kasjera. Bedzie jej uzywal do logowania.
  4. Ustaw haslo. Wybierz silne haslo. To konto moze miec dostep do danych finansowych i informacji o klientach.
  5. Wybierz role z listy rozwijanej. Mozesz wybrac Administratora, Domyslna lub dowolna niestandardowa role, ktora utworzyles.
  6. Kliknij Zapisz, aby utworzyc konto.

Nowy kasjer moze teraz zalogowac sie do serwera HandyCafe przy uzyciu swoich poswiadczen.


Tworzenie niestandardowej roli

  1. Przejdz do Zarzadzanie > Role kasjerow w aplikacji serwerowej.
  2. Kliknij przycisk Dodaj role.
  3. Wpisz nazwe roli (np. "Kierownik zmiany", "Mlodszy kasjer", "Personel nocny").
  4. Ustaw poziom roli. Wyzsze poziomy wskazuja wieksza wladze. Jest to uzywane do porzadkowania wyswietlania i hierarchii organizacyjnej.
  5. Zaznacz lub odznacz poszczegolne uprawnienia we wszystkich szesciu kategoriach. Kazde pole wyboru odpowiada jednemu z 22 ustawien uprawnien.
  6. Kliknij Zapisz, aby utworzyc role.

Po utworzeniu mozesz przypisac te role do dowolnego konta kasjera.


Egzekwowanie po stronie serwera

Uprawnienia sa egzekwowane po stronie serwera, nie tylko ukrywane w interfejsie. Nawet jesli ktos obejdzie interfejs klienta lub zmanipuluje kod frontendowy, serwer waliduje kazde zadanie wzgledem uprawnien roli kasjera przed jego wykonaniem.

Oznacza to:

  • Kasjer bez MEMBER_DELETE nie moze usunac czlonka, nawet wysylajac bezposrednie zadanie API.
  • Kasjer bez REPORT_DISPLAY_FULL nie moze pobrac historycznych danych raportow niezaleznie od sposobu dostepu do systemu.
  • Wszystkie sprawdzenia uprawnien odbywaja sie w backendzie Rust przed wykonaniem jakiejkolwiek operacji na bazie danych.

Bezpieczenstwo: ograniczanie czestotliwosci

W celu ochrony przed atakami brute-force HandyCafe egzekwuje ograniczanie czestotliwosci logowania:

  • 5 nieudanych prob logowania w ciagu 10-minutowego okna wyzwala automatyczna blokade.
  • Blokada trwa 15 minut, podczas ktorych zadne proby logowania nie sa akceptowane dla tego konta.
  • Po wygasnieciu okresu blokady kasjer moze sprobowac ponownie.

Dotyczy to zarowno ekranu logowania serwera, jak i logowania kasjera na komputerach klienckich.


Zarzadzanie zmianami

Aktywnosc kazdego kasjera jest sledzona indywidualnie przez cala zmiane:

  • Wszystkie transakcje (platnosci za sesje, platnosci za zamowienia itp.) sa rejestrowane z identyfikacja kasjera.
  • Kasa sledzi saldo otwarcia i zamkniecia dla kazdej zmiany kasjera osobno.
  • Raporty zmianowe moga byc generowane per kasjer, pokazujac dokladnie ile przychodu przetworzyl podczas zmiany.
  • Gdy kasjer sie wylogowuje, zmiana jest zamykana i podsumowanie jest dostepne do przegladniecia.

Sledzenie per kasjer zapewnia rozliczalnosc i ulatwia identyfikacje rozbieznosci na koniec kazdej zmiany.


Przyklady uprawnien

Scenariusz 1: Podstawowy kasjer Nowy pracownik, ktory potrzebuje tylko uruchamiac/zatrzymywac sesje i przyjmowac platnosci. Przypisz mu niestandardowa role z wlaczonym tylko CLIENT_LOGIN. Nie moze wyswietlac czlonkow, raportow, logow ani konsol.

Scenariusz 2: Kierownik zmiany Zaufany pracownik nadzorujacy prace na hali. Przypisz mu role z CLIENT_LOGIN, MEMBER_VIEW, MEMBER_UPDATE, CONSOLE_VIEW, REPORT_PAGE_VIEW i REPORT_DISPLAY_TODAY. Moze zarzadzac sesjami, wyswietlac (ale nie usuwac) czlonkow, widziec konsole i sprawdzac dzisiejsze przychody, ale nie ma dostepu do pelnych raportow historycznych ani nie moze modyfikowac metod platnosci.

Scenariusz 3: Kierownik nocny Kierownik obslugujacy nocna zmiane samodzielnie. Przyznaj mu wiekszosc uprawnien z wyjatkiem MEMBER_DELETE, LOG_DELETE i PAYMENT_METHOD_DELETE. Moze zarzadzac wszystkim podczas zmiany, ale nie moze trwale usuwac krytycznych danych.

Scenariusz 4: Personel z ograniczeniami prywatnosci Kasjer, ktory nie powinien widziec danych kontaktowych klientow. Utworz role z wlaczonym MEMBER_VIEW, ale z wylaczonymi DISPLAY_EMAIL i DISPLAY_GSM. Moze wyszukiwac czlonkow po imieniu, ale dane kontaktowe sa ukryte.