Перейти к содержимому

Пользователи

Список всех пользователей бота с карточками. Состояние бота и подписки отслеживается раздельно, кнопки и опции отражают фактику:

  • Блокировка — на выбор: «бот + подписка», «только подписку», «только в боте». Подписка в панели переводится в статус DISABLED (PATCH /api/users). Пользователю сразу приходит уведомление о том, что именно ограничено; сообщение о блокировке постоянное (без кнопок), если заблокирован сам доступ к боту.
  • Разблокировка — теми же опциями; в меню показываются только применимые варианты (например, если заблокирована только подписка — будет только «Только подписку»). Уведомление о разблокировке приходит с кнопкой «На главную».
  • На экране «Моя подписка» заблокированная подписка отображается как «🛑 Подписка заблокирована администратором сервиса».
  • 🚪 Доступ — режим публичности бота (см. ниже), приглашения и белый список на одном экране.
  • Вайтлист, доступ к P2P, удаление (только из бота или вместе с подпиской в панели), и 🔗 Связать с панелью — ручная привязка аккаунта бота к существующей учётке панели по username или UUID (после связки пользователь управляет ею из бота, триал для него закрыт).

Если на нодах включён плагин torrent-blocker (Панель и Node ≥ 2.7.0), панель шлёт боту отчёт о каждой блокировке IP за торрент-трафик. Бот на это умеет (Пользователи → 🚫 Торренты):

  • Отчёт админу по каждому срабатыванию: кто (карточкой), какое это нарушение за 30 дней, нода, IP, срок блокировки, протокол и адреса соединения. Прямо из отчёта: открыть карточку, заблокировать пользователя, снять блокировку IP досрочно (через Executor плагинов на всех нодах) и вывести пользователя из-под блокера (ignoreLists.userId во всех конфигах плагинов).
  • Предупреждение нарушителю (не чаще раза в 10 минут): что торренты запрещены, на сколько заблокирован IP и куда шёл трафик; кнопка вашей поддержки. Когда срок выходит — отдельное сообщение «блокировка снята» (текст настраивается с телеграм-форматированием, есть «Тест мне»; перед отправкой бот сверяет с панелью, что подписка не отключена).
  • Журнал всех отчётов (180 дней) с пагинацией и счётчиком повторов; в карточке пользователя — «Нарушений: N» и его личный журнал.
  • Автоотключение подписки по порогу: N нарушений за 30 дней → бот сам переводит подписку в DISABLED и сообщает обоим. По умолчанию выключено (порог 0); после срабатывания действует часовая пауза — хвост отчётов по уже открытым соединениям не наказывает повторно. Вернуть доступ — обычной разблокировкой в карточке.

Что нужно, чтобы заработало:

  1. Плагин torrent-blocker включён на нодах (настраивается в панели).
  2. Вебхук панели смотрит на https://ВАШ_ДОМЕН/webhook/remnawave и включает scope torrent_blocker (см. «Вебхуки»).
  3. Задан секрет вебхука — «Система → Вебхуки → Секрет» и тот же секрет в панели. Без подписи отчёты отбрасываются: иначе подделанным запросом можно было бы слать людям ложные «ваш IP заблокирован» (а при включённом пороге — и отключать подписки).
  4. Для кнопок «Снять блокировку IP» и «В исключения» токену панели 3.x нужны скоупы node-plugins: list, get, update, executor.

Учтите: блокер ловит лишь часть торрент-трафика (sniffing на инбаунде), так что отчёты — это «поймали за руку», а не полная статистика.

Доступ в бота: публично / приглашения / вайтлист

Заголовок раздела «Доступ в бота: публично / приглашения / вайтлист»

Пользователи → 🚪 Доступ. Три взаимоисключающих режима:

Режим Кто может войти
🌍 Публично кто угодно (по умолчанию)
✉️ По приглашениям только тот, кто перешёл по ссылке-приглашению
🛡 Белый список только те, кого вы добавили вручную (по Telegram ID или кнопкой в карточке)

Приглашения. Кнопка «➕ Новое приглашение» спрашивает две вещи: сколько дней ссылка действует (0 — бессрочно) и сколько регистраций по ней разрешено (0 — без ограничения). Бот выдаёт ссылку вида t.me/ВАШ_БОТ?start=inv_КОД — её можно отправить человеку или выложить в закрытый канал.

  • Перешедший по ссылке получает постоянный доступ (тот же признак, что и в белом списке), поэтому переключение режимов никого не выкидывает.
  • При закрытии ранее публичного бота (публично → приглашения/вайтлист) бот спрашивает, что делать с уже зарегистрированными: «сохранить доступ» (действующие клиенты не теряют бота) или «закрыть всем» (полезно сразу после импорта чужой базы). Ничего не выдаётся молча.
  • Экран «Список вайтлиста» показывает всех, у кого доступ реально есть (с пагинацией и переходом в карточку), отдельно — заранее добавленные Telegram ID тех, кто ещё не заходил. Есть кнопка «Снять доступ у всех» — с подтверждением; вы как админ остаётесь в боте в любом случае.
  • Режим публичности действует и на мини-апп, и на веб-кабинет — закрытый бот не пускает через веб тех, кого не пускает в чат. Если раньше кто-то пользовался мини-аппом по прямой ссылке, не будучи в белом списке, после обновления ему понадобится доступ — добавьте его в карточке пользователя.
  • E-mail-аккаунты кабинета белым списком Telegram-ID не описываются: в закрытом боте для них обязательна модерация кабинета — ранее одобренные работают как раньше, новые попадают в очередь на одобрение к админу.
  • Приглашения работают только в режиме «по приглашениям»: после переключения на белый список старые ссылки перестают открывать доступ.
  • Счётчик активаций и срок проверяются атомарно — по ссылке «на одного» не пройдут двое.
  • Приглашение можно отозвать (перестаёт работать, но остаётся в списке) или удалить. Об активации приходит уведомление админу.
  • Если код просрочен, отозван или исчерпан, пользователь видит понятное сообщение и просьбу запросить новую ссылку.

Оплату переводом (P2P) можно открыть всем без ручного одобрения: Продажи → P2P → «🔓 Перевод всем без одобрения». Реквизиты тогда выдаются сразу, а подтверждение самой оплаты по скриншоту остаётся как было.