Ρόλοι & Δικαιώματα Ταμείου
Το HandyCafe χρησιμοποιεί έλεγχο πρόσβασης βάσει ρόλων (RBAC) για να διαχειρίζεται τι μπορεί να δει και να κάνει κάθε μέλος του προσωπικού στο σύστημα. Κάθε ταμίας ανατίθεται σε έναν ρόλο και αυτός ο ρόλος καθορίζει τα ακριβή δικαιώματά τους σε ολόκληρη την εφαρμογή.
Τύποι Ρόλων
Το HandyCafe παρέχει τρεις τύπους ρόλων:
Admin
Ο ρόλος Admin παρέχει απεριόριστη πρόσβαση σε κάθε δυνατότητα του συστήματος. Οι Admin μπορούν να διαχειρίζονται ταμεία, να βλέπουν όλες τις αναφορές, να τροποποιούν ρυθμίσεις και να εκτελούν οποιαδήποτε λειτουργία. Αυτός ο ρόλος προορίζεται για τους ιδιοκτήτες καφέ και τους ανώτερους διευθυντές που χρειάζονται πλήρη έλεγχο.
Υπάρχει πάντα τουλάχιστον ένας λογαριασμός Admin στο σύστημα. Ο ρόλος Admin δεν μπορεί να διαγραφεί ή να μειωθούν τα δικαιώματά του.
Default
Ο ρόλος Default δεν έχει ανατεθεί ειδικά δικαιώματα. Ένας ταμίας με τον ρόλο Default μπορεί να συνδεθεί και να εκτελέσει βασικές λειτουργίες, αλλά δεν μπορεί να έχει πρόσβαση σε περιορισμένες περιοχές όπως η διαχείριση μελών, οι αναφορές ή η διαμόρφωση κονσόλας. Χρησιμοποιήστε αυτόν τον ρόλο ως σημείο εκκίνησης για νέες προσλήψεις που χρειάζονται μόνο να χειρίζονται βασικές εργασίες.
Custom
Οι προσαρμοσμένοι ρόλοι σας επιτρέπουν να ορίσετε ακριβώς ποια δικαιώματα έχει ένας ταμίας. Επιλέγετε ένα όνομα, ορίζετε ένα επίπεδο και στη συνέχεια επιλέγετε ή αποεπιλέγετε μεμονωμένα δικαιώματα σε έξι κατηγορίες. Αυτό σας δίνει λεπτομερή έλεγχο στο τι μπορεί να έχει πρόσβαση κάθε μέλος του προσωπικού.
Κατηγορίες Δικαιωμάτων
Το HandyCafe διαθέτει 22 μεμονωμένα δικαιώματα οργανωμένα σε 6 κατηγορίες. Κάθε δικαίωμα ελέγχει μια συγκεκριμένη ενέργεια ή προβολή στο σύστημα.
1. Authentication (1 δικαίωμα)
| Δικαίωμα | Περιγραφή |
|---|---|
| CLIENT_LOGIN | Επιτρέπει στον ταμία να συνδεθεί σε υπολογιστές πελατών (έναρξη συνεδριών εκ μέρους των πελατών) |
Χωρίς αυτό το δικαίωμα, ένας ταμίας δεν μπορεί να ξεκινήσει ή να διαχειριστεί συνεδρίες πελατών.
2. Members (6 δικαιώματα)
| Δικαίωμα | Περιγραφή |
|---|---|
| VIEW | Προβολή της λίστας μελών και των λεπτομερειών μελών |
| ADD | Δημιουργία νέων λογαριασμών μελών |
| DELETE | Διαγραφή λογαριασμών μελών από το σύστημα |
| UPDATE | Επεξεργασία υπαρχόντων πληροφοριών μελών (όνομα, υπόλοιπο κ.λπ.) |
| DISPLAY_EMAIL | Προβολή διευθύνσεων email μελών στη λίστα μελών |
| DISPLAY_GSM | Προβολή τηλεφωνικών αριθμών μελών στη λίστα μελών |
Ένας ταμίας με μόνο VIEW μπορεί να περιηγηθεί στη λίστα μελών αλλά δεν μπορεί να δημιουργήσει, να επεξεργαστεί ή να διαγράψει κανένα μέλος. Τα δικαιώματα DISPLAY_EMAIL και DISPLAY_GSM ελέγχουν αν είναι ορατές ευαίσθητες πληροφορίες επικοινωνίας. Αυτό είναι χρήσιμο για τη συμμόρφωση με την ιδιωτικότητα όπου δεν πρέπει όλα τα μέλη του προσωπικού να βλέπουν προσωπικά δεδομένα.
3. Consoles (4 δικαιώματα)
| Δικαίωμα | Περιγραφή |
|---|---|
| VIEW | Προβολή της σελίδας κονσολών και των καρτών κατάστασης κονσολών |
| ADD | Εγγραφή νέων κονσολών παιχνιδιών στο σύστημα |
| DELETE | Διαγραφή κονσολών από το σύστημα |
| UPDATE | Επεξεργασία λεπτομερειών κονσόλας (όνομα, MAC address, τιμολόγηση) |
4. Logs (4 δικαιώματα)
| Δικαίωμα | Περιγραφή |
|---|---|
| VIEW | Πρόσβαση στη σελίδα καταγραφών |
| DISPLAY_FULL | Προβολή του πλήρους ιστορικού καταγραφών (όλες οι ημερομηνίες) |
| DISPLAY_TODAY | Προβολή μόνο των καταγραφών της σημερινής ημέρας |
| DELETE | Διαγραφή καταγραφών |
Αν ένας ταμίας έχει VIEW και DISPLAY_TODAY αλλά όχι DISPLAY_FULL, μπορεί να δει μόνο τις καταγραφές της τρέχουσας ημέρας. Αυτό είναι χρήσιμο για τους επόπτες βάρδιας που χρειάζονται να παρακολουθούν την τρέχουσα δραστηριότητα χωρίς πρόσβαση σε ιστορικά αρχεία.
5. Reports (3 δικαιώματα)
| Δικαίωμα | Περιγραφή |
|---|---|
| PAGE_VIEW | Πρόσβαση στη σελίδα αναφορών/αναφοράς ταμείου |
| DISPLAY_FULL | Προβολή του πλήρους ιστορικού αναφορών (όλες οι ημερομηνίες) |
| DISPLAY_TODAY | Προβολή μόνο των δεδομένων αναφορών της σημερινής ημέρας |
Όπως και με τις καταγραφές, τα δικαιώματα αναφορών σας επιτρέπουν να ελέγχετε αν το προσωπικό μπορεί να δει το πλήρες οικονομικό ιστορικό ή μόνο τα στοιχεία της τρέχουσας ημέρας. Ένας ταμίας με PAGE_VIEW και DISPLAY_TODAY μπορεί να εξετάσει τις συναλλαγές της δικής του βάρδιας αλλά δεν μπορεί να έχει πρόσβαση σε ιστορικά δεδομένα εσόδων.
6. Payment Methods (4 δικαιώματα)
| Δικαίωμα | Περιγραφή |
|---|---|
| MANAGE | Πρόσβαση στην περιοχή διαχείρισης μεθόδων πληρωμής |
| ADD | Δημιουργία νέων μεθόδων πληρωμής (μετρητά, κάρτα, κινητή πληρωμή κ.λπ.) |
| DELETE | Διαγραφή μεθόδων πληρωμής από το σύστημα |
| UPDATE | Επεξεργασία λεπτομερειών υπαρχουσών μεθόδων πληρωμής |
Σύνοψη
| Κατηγορία | Δικαιώματα | Σύνολο |
|---|---|---|
| Authentication | CLIENT_LOGIN | 1 |
| Members | VIEW, ADD, DELETE, UPDATE, DISPLAY_EMAIL, DISPLAY_GSM | 6 |
| Consoles | VIEW, ADD, DELETE, UPDATE | 4 |
| Logs | VIEW, DISPLAY_FULL, DISPLAY_TODAY, DELETE | 4 |
| Reports | PAGE_VIEW, DISPLAY_FULL, DISPLAY_TODAY | 3 |
| Payment Methods | MANAGE, ADD, DELETE, UPDATE | 4 |
| Σύνολο | 22 |
Πώς Λειτουργούν τα Δικαιώματα
Κάθε κατηγορία δικαιωμάτων έχει ένα σύνολο μεμονωμένων δικαιωμάτων. Κάθε δικαίωμα μπορεί να ενεργοποιηθεί ή να απενεργοποιηθεί ανεξάρτητα χρησιμοποιώντας τα checkboxes στον επεξεργαστή ρόλων.
Η διεπαφή χρήστη παρέχει checkboxes για κάθε δικαίωμα. Απλά επιλέξτε ή αποεπιλέξτε τα δικαιώματα που θέλετε να παραχωρήσετε ή να ανακαλέσετε. Το σύστημα διαχειρίζεται αυτόματα την υποκείμενη αποθήκευση -- δεν χρειάζεται να υπολογίσετε καμία τιμή χειροκίνητα.
Για παράδειγμα, στην κατηγορία Members, μπορείτε να ενεργοποιήσετε ή να απενεργοποιήσετε ανεξάρτητα: VIEW, ADD, DELETE, UPDATE, DISPLAY_EMAIL και DISPLAY_GSM. Ένας ταμίας με μόνο VIEW και UPDATE επιλεγμένα μπορεί να δει και να επεξεργαστεί μέλη, αλλά δεν μπορεί να προσθέσει ή να διαγράψει.
Δημιουργία Λογαριασμού Ταμία
- Μεταβείτε στο Διαχείριση > Ταμεία στην εφαρμογή διακομιστή.
- Κάντε κλικ στο κουμπί Προσθήκη Ταμία.
- Εισάγετε το όνομα χρήστη του ταμία. Αυτό θα χρησιμοποιηθεί για τη σύνδεση.
- Ορίστε έναν κωδικό πρόσβασης. Επιλέξτε έναν ισχυρό κωδικό. Αυτός ο λογαριασμός μπορεί να έχει πρόσβαση σε οικονομικά δεδομένα και πληροφορίες πελατών.
- Επιλέξτε έναν ρόλο από το αναπτυσσόμενο μενού. Μπορείτε να επιλέξετε Admin, Default ή οποιονδήποτε προσαρμοσμένο ρόλο έχετε δημιουργήσει.
- Κάντε κλικ στο Αποθήκευση για να δημιουργήσετε τον λογαριασμό.
Ο νέος ταμίας μπορεί τώρα να συνδεθεί στον διακομιστή HandyCafe χρησιμοποιώντας τα διαπιστευτήριά του.
Δημιουργία Προσαρμοσμένου Ρόλου
- Μεταβείτε στο Διαχείριση > Ρόλοι Ταμία στην εφαρμογή διακομιστή.
- Κάντε κλικ στο κουμπί Προσθήκη Ρόλου.
- Εισάγετε ένα όνομα ρόλου (π.χ., "Επόπτης Βάρδιας", "Νέος Ταμίας", "Νυχτερινό Προσωπικό").
- Ορίστε το επίπεδο ρόλου. Τα υψηλότερα επίπεδα υποδεικνύουν περισσότερη εξουσία. Αυτό χρησιμοποιείται για την ταξινόμηση και την οργανωτική ιεραρχία.
- Επιλέξτε ή αποεπιλέξτε μεμονωμένα δικαιώματα σε όλες τις έξι κατηγορίες. Κάθε checkbox αντιστοιχεί σε μία από τις 22 ρυθμίσεις δικαιωμάτων.
- Κάντε κλικ στο Αποθήκευση για να δημιουργήσετε τον ρόλο.
Αφού δημιουργηθεί, μπορείτε να αναθέσετε αυτόν τον ρόλο σε οποιονδήποτε λογαριασμό ταμία.
Εφαρμογή στο Backend
Τα δικαιώματα εφαρμόζονται στην πλευρά του διακομιστή, όχι μόνο κρυμμένα στη διεπαφή χρήστη. Ακόμα και αν κάποιος παρακάμψει τη διεπαφή πελάτη ή τροποποιήσει τον κώδικα του frontend, ο διακομιστής επικυρώνει κάθε αίτημα σε σχέση με τα δικαιώματα του ρόλου του ταμία πριν το εκτελέσει.
Αυτό σημαίνει:
- Ένας ταμίας χωρίς MEMBER_DELETE δεν μπορεί να διαγράψει ένα μέλος, ακόμα και αν στείλει άμεσο αίτημα API.
- Ένας ταμίας χωρίς REPORT_DISPLAY_FULL δεν μπορεί να ανακτήσει ιστορικά δεδομένα αναφορών, ανεξάρτητα από το πώς αποκτά πρόσβαση στο σύστημα.
- Όλοι οι έλεγχοι δικαιωμάτων γίνονται στο backend του Rust πριν εκτελεστεί οποιαδήποτε λειτουργία στη βάση δεδομένων.
Ασφάλεια: Περιορισμός Ρυθμού
Για την προστασία από επιθέσεις brute-force, το HandyCafe εφαρμόζει περιορισμό ρυθμού σύνδεσης:
- 5 αποτυχημένες προσπάθειες σύνδεσης μέσα σε ένα παράθυρο 10 λεπτών ενεργοποιούν αυτόματο κλείδωμα.
- Το κλείδωμα διαρκεί 15 λεπτά, κατά τη διάρκεια των οποίων δεν γίνονται δεκτές προσπάθειες σύνδεσης για αυτόν τον λογαριασμό.
- Μετά τη λήξη της περιόδου κλειδώματος, ο ταμίας μπορεί να προσπαθήσει ξανά.
Αυτό ισχύει τόσο για την οθόνη σύνδεσης του διακομιστή όσο και για τη σύνδεση ταμία σε υπολογιστές πελατών.
Διαχείριση Βάρδιας
Η δραστηριότητα κάθε ταμία παρακολουθείται ξεχωριστά κατά τη διάρκεια της βάρδιάς του:
- Όλες οι συναλλαγές (πληρωμές συνεδριών, πληρωμές παραγγελιών κ.λπ.) καταγράφονται με την ταυτότητα του ταμία.
- Το ταμείο παρακολουθεί το αρχικό και το τελικό υπόλοιπο για κάθε βάρδια ταμία ξεχωριστά.
- Οι αναφορές βάρδιας μπορούν να δημιουργηθούν ανά ταμία, δείχνοντας ακριβώς πόσα έσοδα επεξεργάστηκαν κατά τη διάρκεια της βάρδιάς τους.
- Όταν ένας ταμίας αποσυνδέεται, η βάρδιά του κλείνει και μια σύνοψη είναι διαθέσιμη για ανασκόπηση.
Αυτή η παρακολούθηση ανά ταμία εξασφαλίζει την υπευθυνότητα και διευκολύνει την αναγνώριση αποκλίσεων στο τέλος κάθε βάρδιας.
Παραδείγματα Δικαιωμάτων
Σενάριο 1: Βασικός Ταμίας Ένας νέος υπάλληλος που χρειάζεται μόνο να ξεκινά/σταματά συνεδρίες και να δέχεται πληρωμές. Αναθέστε του έναν προσαρμοσμένο ρόλο με μόνο το CLIENT_LOGIN ενεργοποιημένο. Δεν μπορεί να δει μέλη, αναφορές, καταγραφές ή κονσόλες.
Σενάριο 2: Επόπτης Βάρδιας Ένας αξιόπιστος υπάλληλος που επιβλέπει το πάτωμα. Αναθέστε του έναν ρόλο με CLIENT_LOGIN, MEMBER_VIEW, MEMBER_UPDATE, CONSOLE_VIEW, REPORT_PAGE_VIEW και REPORT_DISPLAY_TODAY. Μπορεί να διαχειρίζεται συνεδρίες, να βλέπει (αλλά όχι να διαγράφει) μέλη, να βλέπει κονσόλες και να ελέγχει τα σημερινά έσοδα αλλά δεν μπορεί να έχει πρόσβαση σε πλήρεις ιστορικές αναφορές ή να τροποποιεί μεθόδους πληρωμής.
Σενάριο 3: Νυχτερινός Διευθυντής Ένας διευθυντής που διαχειρίζεται τη νυχτερινή βάρδια ανεξάρτητα. Δώστε του τα περισσότερα δικαιώματα εκτός από MEMBER_DELETE, LOG_DELETE και PAYMENT_METHOD_DELETE. Μπορεί να διαχειρίζεται τα πάντα κατά τη διάρκεια της βάρδιάς του αλλά δεν μπορεί να αφαιρέσει μόνιμα κρίσιμα δεδομένα.
Σενάριο 4: Προσωπικό με Περιορισμένη Ιδιωτικότητα Ένας ταμίας που δεν πρέπει να βλέπει στοιχεία επικοινωνίας πελατών. Δημιουργήστε έναν ρόλο με το MEMBER_VIEW ενεργοποιημένο αλλά το DISPLAY_EMAIL και το DISPLAY_GSM απενεργοποιημένα. Μπορεί να αναζητήσει μέλη με βάση το όνομα αλλά οι προσωπικές πληροφορίες επικοινωνίας είναι κρυφές.