Перейти до змісту

Мультичат-авторизація

Telegram-бот BamDude підтримує кілька чатів з незалежною авторизацією, рольовими правами та контролем реєстрації.


Огляд

Кожен чат Telegram (приватний або груповий) пов'язаний з групою (роллю) BamDude. Це забезпечує:

  • Права для кожного чату -- Різні чати можуть мати різні рівні доступу
  • Маршрутизація сповіщень -- Кожен чат отримує лише ті події, на які підписаний
  • Тихі години -- Налаштування тихих годин для кожного чату
  • Контроль реєстрації -- Контроль авторизації нових чатів

Керування чатами

Керуйте чатами Telegram у веб-інтерфейсі в Параметри > Сповіщення > Чати Telegram.

Властивості чату

Властивість Опис
ID чату Ідентифікатор чату Telegram (автовизначення)
Назва чату Відображувана назва
Група Призначення групи (ролі) BamDude
Події сповіщень Які події отримує цей чат
Тихі години Часове вікно для приглушення сповіщень
Щоденний дайджест Отримувати зведення замість окремих повідомлень
Активний Увімкнення/вимкнення чату

Перевірка прав

Middleware бота перевіряє права перед виконанням команд:

  1. Користувач надсилає команду або натискає інлайн-кнопку
  2. Middleware знаходить групу чату
  3. Перевіряє, чи має група необхідні права
  4. Дозволяє або забороняє дію

Приклади прав

Дія Необхідні права
Перегляд принтерів printers:read
Керування принтерами printers:control
Запуск друків queue:create
Перегляд черги queue:read
Керування обслуговуванням settings:update

Реєстрація: open vs. closed

Один булеан — telegram_registration_open (Settings → Notifications → Telegram) — керує тим, як з'являються нові чати:

Налаштування Поведінка
telegram_registration_open=true Невідомі чати, що написали боту, авто-реєструються з is_active=False, group_id=NULL. Вони ще нічого не можуть — адмін має все одно призначити групу і активувати їх у Settings → Notifications → Telegram Chats. По суті, режим "хочу побачити, хто хоче в'їхати".
telegram_registration_open=false (дефолт) Невідомі чати тихо відхиляються. Щоб впустити новий чат, адмін додає його вручну у веб-інтерфейсі.

Третього "відкритий + auto-active default group" режиму немає — жодна з опцій не видає прав автоматично. Активація завжди є ручним кроком у веб-інтерфейсі.


Middleware авторизації

Middleware авторизації (telegram_handlers/auth_middleware.py) працює для кожного повідомлення та callback:

  1. Перевіряє, чи існує чат у таблиці telegram_chats.
  2. Якщо новий і telegram_registration_open=true: вставляє рядок з is_active=False, group_id=NULL і тихо дропає повідомлення — чат стане функціональним лише коли адмін активує його і призначить групу у веб-інтерфейсі.
  3. Якщо новий і telegram_registration_open=false: одразу відхиляє повідомлення.
  4. Завантажує групу та права чату.
  5. Впроваджує права в контекст обробника.
  6. Обробник перевіряє необхідні права перед дією.

Сповіщення для кожного чату

Кожен чат може підписатися на різні події сповіщень:

  • Події друку -- завершення, помилка, прогрес
  • Події черги -- додано, запущено, очікує, завершено
  • Системні події -- принтер офлайн, помилки HMS, обслуговування необхідне

Налаштовується у веб-інтерфейсі для кожного чату.


Поради

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

Створіть приватний чат з групою Адміністратори для повного контролю, і груповий чат з групою Глядачі для моніторингу.

Тихі години

Встановіть тихі години для кожного чату, щоб уникнути сповіщень у неробочий час. Щоденний дайджест узагальнить пропущені події.

Відкликання доступу

Щоб відкликати доступ чату, видаліть його з веб-інтерфейсу або встановіть як неактивний. Бот перестане відповідати цьому чату.