Roluri și permisiuni casier
HandyCafe folosește controlul accesului bazat pe roluri (RBAC) pentru a gestiona ce poate vedea și face fiecare membru al personalului în cadrul sistemului. Fiecare casier are atribuit un rol, iar acel rol determină permisiunile exacte în întreaga aplicație.
Tipuri de roluri
HandyCafe oferă trei tipuri de roluri:
Administrator
Rolul de Administrator acordă acces nelimitat la fiecare funcție din sistem. Administratorii pot gestiona casierii, vizualiza toate rapoartele, modifica setările și efectua orice operațiune. Acest rol este destinat proprietarilor de cafe-uri și managerilor seniori care au nevoie de control total.
Există întotdeauna cel puțin un cont de Administrator în sistem. Rolul de Administrator nu poate fi șters și nici permisiunile sale nu pot fi reduse.
Implicit
Rolul Implicit nu are permisiuni speciale atribuite. Un casier cu rolul Implicit se poate autentifica și efectua operațiuni de bază, dar nu poate accesa zone restricționate precum gestionarea membrilor, raportarea sau configurarea consolelor. Folosiți-l ca punct de plecare pentru angajații noi care trebuie doar să gestioneze sarcini de bază.
Personalizat
Rolurile personalizate permit definirea exactă a permisiunilor unui casier. Alegeți un nume, setați un nivel și apoi bifați sau debifați indicatori individuali de permisiune din cele șase categorii. Aceasta oferă control fin asupra a ceea ce poate accesa fiecare membru al personalului.
Categorii de permisiuni
HandyCafe are 22 de indicatori individuali de permisiune organizați în 6 categorii. Fiecare indicator controlează o acțiune sau vizualizare specifică din sistem.
1. Autentificare (1 indicator)
| Indicator | Descriere |
|---|---|
| CLIENT_LOGIN | Permite casierului să autentifice PC-urile client (să pornească sesiuni în numele clienților) |
Fără această permisiune, un casier nu poate porni sau gestiona sesiuni client.
2. Membri (6 indicatori)
| Indicator | Descriere |
|---|---|
| VIEW | Vizualizarea listei de membri și a detaliilor membrilor |
| ADD | Crearea de noi conturi de membru |
| DELETE | Eliminarea conturilor de membru din sistem |
| UPDATE | Editarea informațiilor existente ale membrilor (nume, sold etc.) |
| DISPLAY_EMAIL | Vizualizarea adreselor de email ale membrilor în lista de membri |
| DISPLAY_GSM | Vizualizarea numerelor de telefon ale membrilor în lista de membri |
Un casier cu doar VIEW poate răsfoi lista de membri dar nu poate crea, edita sau elimina niciun membru. Indicatorii DISPLAY_EMAIL și DISPLAY_GSM controlează dacă informațiile sensibile de contact sunt vizibile. Aceasta este utilă pentru conformitatea cu confidențialitatea datelor, unde nu tot personalul ar trebui să vadă date personale.
3. Console (4 indicatori)
| Indicator | Descriere |
|---|---|
| VIEW | Vizualizarea paginii consolelor și a cardurilor de stare ale consolelor |
| ADD | Înregistrarea de noi console de gaming în sistem |
| DELETE | Eliminarea consolelor din sistem |
| UPDATE | Editarea detaliilor consolelor (nume, adresă MAC, tarificare) |
4. Jurnale (4 indicatori)
| Indicator | Descriere |
|---|---|
| VIEW | Accesul la pagina de jurnale |
| DISPLAY_FULL | Vizualizarea istoricului complet al jurnalelor (toate datele) |
| DISPLAY_TODAY | Vizualizarea doar a intrărilor din ziua curentă |
| DELETE | Ștergerea intrărilor din jurnal |
Dacă un casier are VIEW și DISPLAY_TODAY dar nu DISPLAY_FULL, poate vedea doar intrările din ziua curentă. Aceasta este utilă pentru supervizorii de tură care trebuie să monitorizeze activitatea curentă fără a accesa înregistrări istorice.
5. Rapoarte (3 indicatori)
| Indicator | Descriere |
|---|---|
| PAGE_VIEW | Accesul la pagina de rapoarte/raportul de casă |
| DISPLAY_FULL | Vizualizarea istoricului complet al rapoartelor (toate datele) |
| DISPLAY_TODAY | Vizualizarea doar a datelor din ziua curentă |
Similar cu jurnalele, permisiunile de raportare permit controlul asupra vizibilității istoricului financiar complet sau doar a cifrelor zilei curente. Un casier cu PAGE_VIEW și DISPLAY_TODAY poate revizui tranzacțiile propriei ture dar nu poate accesa datele istorice de venituri.
6. Metode de plată (4 indicatori)
| Indicator | Descriere |
|---|---|
| MANAGE | Accesul la zona de gestionare a metodelor de plată |
| ADD | Crearea de noi metode de plată (numerar, card, plată mobilă etc.) |
| DELETE | Eliminarea metodelor de plată din sistem |
| UPDATE | Editarea detaliilor metodelor de plată existente |
Rezumat
| Categorie | Indicatori | Total |
|---|---|---|
| Autentificare | CLIENT_LOGIN | 1 |
| Membrii | VEZI, ADAUGĂ, ȘTERGE, ACTUALIZAȚI, DISPLAY_EMAIL, DISPLAY_GSM | 6 |
| Consolă | VEZI, ADAUGĂ, ȘTERGE, ACTUALIZAȚI | 4 |
| Jurnal | VEZI, DISPLAY_FULL, DISPLAY_TODAY, DELETE | 4 |
| Rapoarte | PAGE_VIEW, DISPLAY_FULL, DISPLAY_TODAY | 3 |
| Metode de plată | GESTIONAȚI, ADAUGĂ, ȘTERGE, ACTUALIZAȚI | 4 |
| Total | 22 |
Cum funcționează permisiunile
Fiecare categorie de permisiuni are un set de indicatori individuali. Fiecare indicator poate fi activat sau dezactivat independent folosind casete de bifare în editorul de roluri.
Interfața oferă casete de bifare pentru fiecare permisiune. Bifați sau debifați permisiunile pe care doriți să le acordați sau revocați. Sistemul gestionează automat stocarea subiacentă -- nu trebuie să calculați manual nicio valoare.
De exemplu, în categoria Membrii puteți activa sau dezactiva independent: VIEW, ADD, DELETE, UPDATE, DISPLAY_EMAIL și DISPLAY_GSM. Un casier cu doar VIEW și UPDATE bifate poate vedea și edita membrii, dar nu ii poate adăuga sau șterge.
Crearea unui cont de casier
- Navigați la Management > Casieri în aplicația server.
- Dați clic pe butonul Adaugă casier.
- Introduceți numele de utilizator al casierului. Acesta este cel pe care il va folosi pentru autentificare.
- Setați o parolă. Alegeți o parolă puternică. Acest cont poate avea acces la date financiare și informații despre clienți.
- Selectați un rol din lista derulantă. Puteți alege Administrator, Implicit sau orice rol personalizat pe care l-ați creat.
- Dați clic pe Salvare pentru a crea contul.
Noul casier se poate autentifica acum pe serverul HandyCafe folosind datele de autentificare.
Crearea unui rol personalizat
- Navigați la Management > Roluri casier în aplicația server.
- Dați clic pe butonul Adaugă rol.
- Introduceți un nume de rol (de exemplu, "Supervizor de tură", "Casier junior", "Personal de noapte").
- Setați nivelul rolului. Nivelurile mai ridicate indică mai multă autoritate. Acesta este folosit pentru ordonarea afișării și ierarhia organizațională.
- Bifați sau debifați permisiunile individuale din toate cele șase categorii. Fiecare casetă de bifare corespunde uneia dintre cele 22 de setări de permisiune.
- Dați clic pe Salvare pentru a crea rolul.
Odată creat, puteți atribui acest rol oricărui cont de casier.
Aplicarea pe server
Permisiunile sunt aplicate pe partea de server, nu doar ascunse în interfață. Chiar dacă cineva ar ocoli interfața client sau ar manipula codul frontend, serverul validează fiecare cerere conform permisiunilor rolului casierului înainte de a o executa.
Aceasta înseamnă:
- Un casier fără MEMBER_DELETE nu poate șterge un membru, chiar dacă trimite o cerere API directă.
- Un casier fără REPORT_DISPLAY_FULL nu poate prelua date istorice de raportare, îndiferent de cum accesează sistemul.
- Toate verificările de permisiuni au loc în backend-ul Rust înainte ca orice operațiune de bază de date să fie efectuată.
Securitate: Limitarea ratei
Pentru a proteja împotriva atacurilor de forță brută, HandyCafe aplică limitarea ratei de autentificare:
- 5 tentative de autentificare eșuate într-un interval de 10 minute declanșează o blocare automată.
- Blocarea durează 15 minute, în care nu sunt acceptate tentative de autentificare pentru acel cont.
- După expirarea perioadei de blocare, casierul poate încerca din nou.
Aceasta se aplică atât ecranului de autentificare al serverului, cât și autentificării casierului pe PC-urile client.
Gestionarea turelor
Activitatea fiecărui casier este urmărită individual pe parcursul turei:
- Toate tranzacțiile (plăți sesiuni, plăți comenzi etc.) sunt înregistrate cu identitatea casierului.
- Casa de marcat urmărește soldul de deschidere și închidere pentru tura fiecărui casier separat.
- Rapoartele de tură pot fi generate per casier, arătând exact cât venit a procesat în timpul turei.
- Când un casier se deconectează, tura sa este închisă și un rezumat este disponibil pentru revizuire.
Această urmărire per casier asigură responsabilitatea și facilitează identificarea discrepanțelor la sfărșitul fiecărei ture.
Exemple de permisiuni
Scenariul 1: Casier de bază Un angajat nou care trebuie doar să pornească/oprească sesiuni și să preia plăți. Atribuiți-i un rol personalizat cu doar CLIENT_LOGIN activat. Nu poate vizualiza membrii, rapoartele, jurnalele sau consolele.
Scenariul 2: Supervizor de tură Un angajat de încredere care supraveghează sala. Atribuiți-i un rol cu CLIENT_LOGIN, MEMBER_VIEW, MEMBER_UPDATE, CONSOLE_VIEW, REPORT_PAGE_VIEW și REPORT_DISPLAY_TODAY. Poate gestiona sesiunile, vizualiza (dar nu șterge) membrii, vedea consolele și verifica veniturile zilei, dar nu poate accesa rapoartele istorice complete sau modifica metodele de plată.
Scenariul 3: Manager de noapte Un manager care gestionează tura de noapte independent. Acordați-i majoritatea permisiunilor cu excepția MEMBER_DELETE, LOG_DELETE și PAYMENT_METHOD_DELETE. Poate gestiona totul în timpul turei dar nu poate elimina permanent date critice.
Scenariul 4: Personal cu restricții de confidențialitate Un casier care nu ar trebui să vadă datele de contact ale clienților. Creați un rol cu MEMBER_VIEW activat dar DISPLAY_EMAIL și DISPLAY_GSM dezactivate. Poate căuta membrii după nume dar informațiile de contact personale sunt ascunse.