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
- Przejdz do Zarzadzanie > Kasjerzy w aplikacji serwerowej.
- Kliknij przycisk Dodaj kasjera.
- Wpisz nazwe uzytkownika kasjera. Bedzie jej uzywal do logowania.
- Ustaw haslo. Wybierz silne haslo. To konto moze miec dostep do danych finansowych i informacji o klientach.
- Wybierz role z listy rozwijanej. Mozesz wybrac Administratora, Domyslna lub dowolna niestandardowa role, ktora utworzyles.
- Kliknij Zapisz, aby utworzyc konto.
Nowy kasjer moze teraz zalogowac sie do serwera HandyCafe przy uzyciu swoich poswiadczen.
Tworzenie niestandardowej roli
- Przejdz do Zarzadzanie > Role kasjerow w aplikacji serwerowej.
- Kliknij przycisk Dodaj role.
- Wpisz nazwe roli (np. "Kierownik zmiany", "Mlodszy kasjer", "Personel nocny").
- Ustaw poziom roli. Wyzsze poziomy wskazuja wieksza wladze. Jest to uzywane do porzadkowania wyswietlania i hierarchii organizacyjnej.
- Zaznacz lub odznacz poszczegolne uprawnienia we wszystkich szesciu kategoriach. Kazde pole wyboru odpowiada jednemu z 22 ustawien uprawnien.
- 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.