KIZORADOCS На сайт

Навигация

Поиск по документации

Права Kizora

Право Kizora отвечает на вопрос «кто из нашей команды управляет вот этой функцией бота». Право Discord отвечает на другой вопрос — «что может сам бот». Их нельзя перепутать: право Kizora никогда не расширяет Discord. tickets.handle не открывает канал, в который Discord человека не пустил.

Кому и как выдаются

Право выдаётся Discord-роли, а не человеку. Персональных выдач нет намеренно: их пришлось бы отзывать вручную при каждом уходе из команды.

Владелец сервера и все, кому Discord дал Администратор или Управление сервером, проходят любую проверку прав Kizora без отдельной выдачи. Отдельной строки для них нет: это было бы право, которое можно случайно отобрать у того, кто и так владеет сервером.

Выдать право на раздачу прав нельзя. roles.manage — это право на роли, а не на раздачу прав; иначе одно делегирование превращалось бы в лестницу.

Полный список

ПравоЧто даётПодробнееМодуль
roles.manageРоли по выборуМеню ролей, временные и отложенные ролиРоли по выбору
messages.manageСообщения сервераСоздавать и планировать сообщения, закреплять stickyСообщения сервера
commands.manageКоманды сервераСвои команды, теги и автоответыСвои команды
forms.manageФормыСоздавать и менять формыФормы
forms.readОтветы на формыВидеть отправленные ответы — личные данныеФормы
giveaways.manageРозыгрышиЗапускать, завершать и перерозыгрыватьРозыгрыши
polls.manageГолосованияСоздавать и закрывать голосованияГолосования
starboard.manageДоска звёздЭмодзи, порог, каналыДоска звёзд
reminders.manageНапоминания сервераСтавить напоминания в каналы и снимать чужиеНапоминания
tickets.manageНастройка обращенийПанели, категории, SLA, транскриптыОбращения
tickets.handleРабота с обращениямиБрать в работу, отвечать, закрывать — личные данныеОбращения
voice.manageГолосовые комнатыЛобби, шаблоны имён, голосовые ролиГолосовые комнаты
verification.manageПроверка на входеНастройка и ручное рассмотрение заявокПроверка на входе
security.manageЗащита сервераAnti-raid, anti-nuke, режим тревогиЗащита сервера
moderation.actМодерация: действияПредупреждения, тайм-ауты, кики, баны, чистка и журнал делМодерация
moderation.manageМодерация: настройкаШаблоны причин, апелляции, настройки модуляМодерация
logs.readЖурнал сервераЧитать журнал событий и видеть, куда пишется каждый раздел — личные данныеЖурнал сервера
stats.readСтатистикаСмотреть аналитику сервераСтатистика
invites.manageПриглашенияУчёт приглашений, бонусы и наградыПриглашения
community.manageСообществоИдеи, Q&A, репутация, целиСообщество
events.manageСобытияСоздавать события, вести запись и посещаемостьСобытия
automations.manageАвтоматизацииПравила «когда — если — тогда»Автоматизации
feeds.manageЛентыRSS и подписки: подключить, приостановить, вернуть, убратьЛенты
integrations.manageИнтеграцииВходящие вебхуки, их секреты и журнал доставок, GitHub, GitLab, мониторинг — личные данныеИнтеграции
economy.manageЭкономикаВалюта, магазин, начисления и корректировкиЭкономика

Права к личным данным

Четыре права открывают доступ к тому, что участники не писали публично: forms.read (ответы на формы), tickets.handle (переписка в обращениях), logs.read (журнал событий сервера) и integrations.manage (секреты вебхуков). Панель показывает их отдельно и не предлагает выдать «всё сразу» одной кнопкой.

Как право доходит до действия

Discord-роли участника
        ↓
строки выдачи (роль → набор прав)
        ↓
права этого человека на этом сервере
        ↓
проверка в сервисе — до любого действия в Discord

Права собираются заново на каждое действие, по ролям, которые у человека есть в этот момент. Три следствия, и все три проверены тестами:

  • сняли право с роли — следующая же команда откажет;
  • сняли роль с человека — то же самое;
  • роль с таким же номером на другом сервере не значит здесь ничего.

Кнопки и списки под сообщениями проверяются так же и в момент нажатия. Кнопка живёт в канале месяцами и не помнит, кто её повесил, поэтому право спрашивается у того, кто нажал, а не у того, кто опубликовал.

Что делает панель, а что Discord

Делегированные права работают в Discord: в командах, кнопках, списках и модальных окнах, а также при выполнении автоматизаций.

Веб-панель работает иначе, и это ограничение модели, а не недоделка. Вход в панель — через OAuth Discord, а он сообщает список серверов и права Discord на них, но не сообщает, какие роли у человека на сервере. Собрать по этим данным набор делегированных прав нельзя, а изображать, что можно, значило бы выдавать доступ по сведениям, которых нет.

Поэтому:

  • настройка сервера через панель требует владения сервером или Discord-права «Администратор» либо «Управление сервером»;
  • чувствительные чтения (журнал дел, журнал событий, ответы форм, переписка обращений, секреты интеграций, чужой журнал начислений) проверяются отдельно и в панели тоже: доступ к серверу в панели есть у любого его участника, и одного этого недостаточно;
  • делегировать права через панель нельзя — не потому, что неудобно, а потому, что не по чему.

Если вам нужно, чтобы человек управлял модулем и без Discord-права «Управление сервером», выдайте право его роли и работайте командами Kizora в Discord.

Связанные страницы