HandyCafe Docs
owner

Ролі та дозволи касирів

HandyCafe використовує контроль доступу на основі ролей (RBAC) для управління тим, що кожен працівник може бачити та робити в системі. Кожному касиру призначається роль, яка визначає його точні дозволи по всьому додатку.


Типи ролей

HandyCafe надає три типи ролей:

Адміністратор

Роль Адміністратора надає необмежений доступ до кожної функції системи. Адміністратори можуть керувати касирами, переглядати всі звіти, змінювати налаштування та виконувати будь-яку операцію. Ця роль призначена для власників кафе та старших менеджерів, яким потрібен повний контроль.

У системі завжди існує щонайменше один обліковий запис Адміністратора. Роль Адміністратора не можна видалити або зменшити її дозволи.

За замовчуванням

Роль за замовчуванням не має спеціальних призначених дозволів. Касир із роллю за замовчуванням може увійти та виконувати базові операції, але не має доступу до обмежених зон, таких як управління учасниками, звітність або конфігурація консолей. Використовуйте її як відправну точку для нових працівників, яким потрібно виконувати лише базові завдання.

Користувацькі

Користувацькі ролі дозволяють точно визначити дозволи касира. Ви задаєте назву, встановлюєте рівень та вмикаєте або вимикаєте окремі прапорці дозволів у шести категоріях. Це забезпечує деталізований контроль доступу для кожного працівника.


Категорії дозволів

HandyCafe має 22 окремі прапорці дозволів, організовані у 6 категорій. Кожен прапорець контролює конкретну дію або подання в системі.

1. Автентифікація (1 прапорець)

Прапорець Опис
CLIENT_LOGIN Дозволяє касиру авторизувати клієнтські ПК (запускати сеанси від імені клієнтів)

Без цього дозволу касир не може запускати або керувати сеансами клієнтів.

2. Учасники (6 прапорців)

Прапорець Опис
VIEW Перегляд списку учасників та деталей
ADD Створення нових облікових записів учасників
DELETE Видалення облікових записів учасників із системи
UPDATE Редагування інформації існуючих учасників (ім'я, баланс тощо)
DISPLAY_EMAIL Перегляд адрес електронної пошти учасників у списку
DISPLAY_GSM Перегляд номерів телефонів учасників у списку

Касир лише з дозволом VIEW може переглядати список учасників, але не може створювати, редагувати або видаляти їх. Прапорці DISPLAY_EMAIL та DISPLAY_GSM контролюють видимість конфіденційної контактної інформації. Це корисно для дотримання конфіденційності, коли не всі працівники мають бачити персональні дані.

3. Консолі (4 прапорці)

Прапорець Опис
VIEW Перегляд сторінки консолей та карток статусу
ADD Реєстрація нових ігрових консолей у системі
DELETE Видалення консолей із системи
UPDATE Редагування деталей консолей (назва, MAC-адреса, тарифікація)

4. Журнали (4 прапорці)

Прапорець Опис
VIEW Доступ до сторінки журналів
DISPLAY_FULL Перегляд повної історії журналів (усі дати)
DISPLAY_TODAY Перегляд лише сьогоднішніх записів журналу
DELETE Видалення записів журналу

Якщо касир має VIEW та DISPLAY_TODAY, але не DISPLAY_FULL, він може бачити лише записи за поточний день. Це корисно для змінних керівників, яким потрібно відстежувати поточну діяльність без доступу до історичних записів.

5. Звіти (3 прапорці)

Прапорець Опис
PAGE_VIEW Доступ до сторінки звітів/касового звіту
DISPLAY_FULL Перегляд повної історії звітів (усі дати)
DISPLAY_TODAY Перегляд лише сьогоднішніх даних звіту

Аналогічно журналам, дозволи звітів дозволяють контролювати, чи може персонал бачити повну фінансову історію або лише показники поточного дня. Касир з PAGE_VIEW та DISPLAY_TODAY може переглядати транзакції своєї зміни, але не має доступу до історичних даних по доходах.

6. Способи оплати (4 прапорці)

Прапорець Опис
MANAGE Доступ до розділу управління способами оплати
ADD Створення нових способів оплати (готівка, картка, мобільний платіж тощо)
DELETE Видалення способів оплати із системи
UPDATE Редагування існуючих способів оплати

Підсумок

Категорія Прапорці Кількість
Автентифікація CLIENT_LOGIN 1
Учасники VIEW, ADD, DELETE, UPDATE, DISPLAY_EMAIL, DISPLAY_GSM 6
Консолі VIEW, ADD, DELETE, UPDATE 4
Журнали VIEW, DISPLAY_FULL, DISPLAY_TODAY, DELETE 4
Звіти PAGE_VIEW, DISPLAY_FULL, DISPLAY_TODAY 3
Способи оплати MANAGE, ADD, DELETE, UPDATE 4
Разом 22

Як працюють дозволи

Кожна категорія дозволів має набір окремих прапорців. Кожен прапорець можна увімкнути або вимкнути незалежно за допомогою чекбоксів у редакторі ролей.

Інтерфейс надає чекбокси для кожного дозволу. Просто встановіть або зніміть позначки з дозволів, які ви хочете надати або відкликати. Система автоматично обробляє збереження -- вам не потрібно розраховувати значення вручну.

Наприклад, у категорії "Учасники" ви можете незалежно увімкнути або вимкнути: VIEW, ADD, DELETE, UPDATE, DISPLAY_EMAIL та DISPLAY_GSM. Касир з увімкненими лише VIEW та UPDATE може переглядати та редагувати учасників, але не може додавати або видаляти їх.


Створення облікового запису касира

  1. Перейдіть до Управління > Касири в серверному додатку.
  2. Натисніть кнопку Додати касира.
  3. Введіть ім'я користувача касира. Це буде використовуватись для входу.
  4. Встановіть пароль. Оберіть надійний пароль. Цей обліковий запис може мати доступ до фінансових даних та інформації про клієнтів.
  5. Оберіть роль зі спадного списку. Ви можете обрати Адміністратор, За замовчуванням або будь-яку створену користувацьку роль.
  6. Натисніть Зберегти для створення облікового запису.

Новий касир тепер може увійти до сервера HandyCafe, використовуючи свої облікові дані.


Створення користувацької ролі

  1. Перейдіть до Управління > Ролі касирів у серверному додатку.
  2. Натисніть кнопку Додати роль.
  3. Введіть назву ролі (наприклад, "Змінний керівник", "Молодший касир", "Нічний персонал").
  4. Встановіть рівень ролі. Вищі рівні вказують на більший авторитет. Це використовується для порядку відображення та організаційної ієрархії.
  5. Увімкніть або вимкніть окремі дозволи по всіх шести категоріях. Кожен чекбокс відповідає одному з 22 параметрів дозволів.
  6. Натисніть Зберегти для створення ролі.

Після створення ви можете призначити цю роль будь-якому обліковому запису касира.


Серверне забезпечення дозволів

Дозволи забезпечуються на стороні сервера, а не лише приховуються в інтерфейсі. Навіть якщо хтось спробує обійти клієнтський інтерфейс або маніпулювати фронтенд-кодом, сервер перевіряє кожен запит відповідно до дозволів ролі касира перед його виконанням.

Це означає:

  • Касир без MEMBER_DELETE не може видалити учасника, навіть надсилаючи прямий API-запит.
  • Касир без REPORT_DISPLAY_FULL не може отримати історичні дані звітів, незалежно від способу доступу до системи.
  • Усі перевірки дозволів відбуваються у Rust-бекенді перед виконанням будь-яких операцій з базою даних.

Безпека: обмеження швидкості

Для захисту від атак підбору паролів 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. Він може шукати учасників за ім'ям, але персональна контактна інформація прихована.