Игры менеджеров

Помощь

Руководство администратора

Один документ на все админ-роли. Прыгайте по якорям к нужному разделу — общие правила одинаковые для всех уровней.

1. Иерархия ролей и зоны ответственности

На платформе пять админ-уровней. Каждый видит и может управлять только своей зоной:

  • Супер-администратор — отвечает за всю платформу: бренд, темы, приглашения, пользователи, общая модерация, выпуск новых администраторов мероприятий. На проде это обычно один-два человека.
  • Администратор мероприятия (event_admin) — управляет одним конкретным событием: настраивает страницу, заводит активности и команды, принимает заявки, публикует результаты.
  • Модератор мероприятия (event_moderator) — следит за контентом события: рассматривает жалобы, скрывает нарушающие посты, выдаёт предупреждения. Не может менять настройки события.
  • Капитан команды (team_moderator) — управляет одной командой: профиль, состав, командная стена.
  • Участник (participant) — обычный пользователь: пишет посты, реагирует, комментирует.

Отдельной роли «администратор активности» в системе нет — управление конкретной игрой, туром или раундом делает администратор мероприятия (или назначенный им модератор). Подробнее — в разделе 4.

2. Супер-администратор

Главный экран — /admin. Он работает как «панель управления»: сверху — состояние платформы и ярлыки быстрых действий, ниже — карточки разделов.

Что настроить в первую очередь

  1. Поменять seed-пароль. При первом входе по дефолтному паролю «cup_super_admin_password» видно предупреждение — сразу же смените пароль через /me. Это первое правило безопасности.
  2. Бренд и платформа (/admin/brand-settings): название сайта, контактный email, фавикон, дефолтная видимость новых мероприятий (Публичная / Только участники / Закрытая), флаги «требовать подтверждения email» и «разрешить свободную регистрацию».
  3. Дефолтная тема для новых мероприятий. На странице /admin/design есть библиотека тем (12 системных + ваши кастомные). Выберите одну как «по умолчанию» — каждое новое мероприятие будет создаваться сразу в нужном фирменном стиле.
  4. Главная страница (/admin/main-page): заголовок, описание «о нас», блок «как это работает», CTA-кнопки. Меняйте этот текст под свою аудиторию — он первое, что видят гости.

Приглашения и пользователи

  • /admin/invites — создание приглашений. Можно привязать к конкретному мероприятию и сразу выдать нужную роль (например, администратор мероприятия). Срок жизни и количество использований — настраиваются. Ссылка вида /signup?invite=… — отправляете её человеку любым удобным способом.
  • /admin/users — список всех зарегистрированных. Можно искать, отфильтровать по роли, изменить роль вручную, временно скрыть пользователя из системы (мягкое удаление) или удалить полностью.

Подтверждение email вручную

Если письмо с подтверждением email не дошло (типичная боль с корпоративными спам-фильтрами на mail.ru / yandex.ru / *.corp), в столбце «Email подтверждён» на /admin/users под пометкой «не подтверждён» есть кнопка «Подтвердить». Нажатие мгновенно помечает email подтверждённым (без отправки писем). Для массовой операции (целый отдел не получил письма) — отметьте чекбоксами в таблице и нажмите «Подтвердить email (N)» в плавающей панели сверху. Уже подтверждённые пропускаются автоматически.

Сброс пароля юзеру

В строке любого активного пользователя на /admin/users есть кнопка «Сбросить пароль». Нажатие → запрос подтверждения → юзеру уходит письмо со ссылкой для установки нового пароля. Ссылка действует 48 часов, после установки нового пароля старый перестаёт работать. Используйте, когда юзер написал, что забыл пароль или письмо «забыли пароль» к нему не дошло.

Массовые операции и удаление мероприятий

На страницах /admin/events, /admin/activities и /admin/teams работают одни и те же приёмы:

  • Поиск и сортировка по названию, дате создания. Сверху над таблицей.
  • Чекбоксы. Отметьте несколько строк — появится плавающая панель «Выбрано N». Из неё доступны массовые операции: удалить, восстановить, окончательно удалить.
  • Мягкое удаление. Объект скрывается со всех публичных страниц, но остаётся в базе. Можно восстановить позже.
  • «Показать удалённые». Галка над таблицей — переключает фильтр. Удалённые строки подсвечены другим цветом.
  • Окончательное удаление (Hard delete) — удаляет навсегда. Доступно только для уже мягко удалённых записей и только если у них нет «детей»: активностей, команд, постов, медиа, заявок. Если есть — система покажет, что именно мешает, и предложит удалить сначала «листья». Пример: чтобы удалить тестовое мероприятие, сначала удалите все его команды и активности, потом — само мероприятие.

Темы и оформление

/admin/design — библиотека тем. 12 системных тем доступны всем. Свои темы можно создавать с нуля или копировать из системной и дорабатывать. Каждая тема — это набор цветов, шрифтов, режима (светлый/тёмный) и опционального фонового изображения. Когда тема применяется к мероприятию, её значения копируются в настройки события — поэтому удаление темы не ломает уже применивших её.

Диагностика и состояние

  • /admin/health — диагностическая страница: какой драйвер хранилища активен, какой почтовый провайдер, запущен ли воркер. Если что-то в красном — посмотрите, что отмечено как «недоступно», и сообщите технической команде.
  • /admin/moderation — общий лист всех жалоб со всех мероприятий. Подробнее — в разделе 6.
  • /admin/media-takedowns — запросы на удаление фото/видео (по 152-ФЗ). Каждый запрос нужно рассмотреть и ответить — пользователю придёт email с решением.

3. Администратор мероприятия

Эта роль — основная рабочая лошадка платформы. Один человек может администрировать сразу несколько мероприятий. Главное место — карточка вашего мероприятия в /admin или прямо ссылка /admin/events/<ваш-slug>.

Создание мероприятия

  1. На главной админки нажмите «Создать мероприятие». Откроется визард.
  2. Введите slug (короткая часть URL), название, видимость, даты начала и окончания. Daty опциональны — если у вас «бессрочное сообщество», оставьте пустыми.
  3. После создания вы попадаете в редактор мероприятия — это «настроечный экран».

Редактор мероприятия

Это «черновик» страницы события. Все изменения сначала сохраняются как «черновик», увидеть результат глазами гостя можно через кнопку «Превью». Когда всё устраивает — нажимаете «Опубликовать», и обновления становятся видны на публичной странице.

  • Основное: название, slug, видимость, краткое описание, даты. Видимость:
    • Публичная — видна всем гостям;
    • Только участники — нужно зарегистрироваться и быть участником;
    • Закрытая — даже список участников не виден гостям.
  • Тема и оформление: выбор из библиотеки тем (раздел «Тема»). Можно быстро поменять цвет фона, цвет карточек, добавить фоновую картинку. Системные темы включают тёмные варианты — выбирайте под характер мероприятия.
  • Hero-секция (верхний блок страницы): надзаголовок (eyebrow), заголовок, описание под ним, кнопки CTA, опционально — форма заявки на участие.
  • About / Описание — расширенный текст с разметкой (жирный, ссылки, картинки). Здесь обычно: «Что это», «Как это работает», «Для кого», «Программа», «Что взять с собой».
  • Секции: «Расписание», «Результаты», «Команды», «Лента» — каждую можно включить/выключить и задать свой заголовок.
  • Доступ и запуск: отдельный блок с настройками — открыты ли заявки, можно ли создавать команды, кто может публиковать в ленте. Используйте, когда хотите «заморозить» мероприятие после старта.

Участники события и команды

Управление людьми вашего мероприятия — на странице /admin/events/<slug>/people. Там видны все зарегистрированные участники, их роли в событии и команда.

  • Добавить готового пользователя. В верхней части страницы — секция «Добавить участников из платформы». Поиск по email или имени, чекбоксы, опциональный выбор команды для немедленного назначения. Отметили нужных → «Добавить отмеченных в событие». Подходит, когда юзер уже зарегистрирован на платформе (через свободную регистрацию или другой invite), но в ваше событие ещё не добавлен.
  • Массовое назначение в команду. Уже добавленных участников можно чекбоксами выделить в таблице ниже и одной кнопкой «Применить к отмеченным» распределить в выбранную команду — каждому уйдёт email-уведомление.
  • Per-event роль. В строке участника — селект «Участник / Модератор мероприятия / Администратор мероприятия». Создателя события понизить нельзя.
  • Удаление из события. Кнопка справа. Автоматически снимает все team-memberships этого участника в рамках события. Создателя удалить нельзя.

Заявки на участие

Если в редакторе включена секция «Заявки», на странице мероприятия появится форма. Все заявки видны на странице /admin/events/<slug>/join-requests. Там:

  • Одобрить: человек становится участником мероприятия — получает доступ к закрытым материалам, видит свою команду (если указана), может писать в ленту.
  • Отклонить: заявитель получит уведомление об отказе.
  • Назначить в команду сразу: при одобрении выберите команду — заявитель сразу попадёт в её состав.

Импорт списка участников

Если у вас уже есть список зарегистрировавшихся (например, из Google Forms), используйте импорт: /admin/events/<slug>/import-participants. Загрузите CSV или вставьте список email-адресов с именами и (опционально) названиями команд — система сама создаст приглашения, заведёт команды и разошлёт ссылки.

Команды

Команды относятся к мероприятию. Создать команду можно из админки мероприятия или со страницы /admin/teams. Назначьте капитана — он получит права управлять составом.

Дублирование мероприятия

Делаете похожее мероприятие? На главной админки в карточке мероприятия есть кнопка «Дубль» — создастся новое событие с теми же темой, описанием, секциями. Активности и команды НЕ копируются (это всегда индивидуально). Меняете slug, название, даты — готово.

4. Управление активностью (играми, турами)

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

Создание

В админке мероприятия или на странице /admin/activities нажмите «Создать активность». Заполните: slug, название, краткое описание, дата старта, видимость.

Жизненный цикл и статусы

У активности есть четыре стадии — переключаются на «панели запуска» в редакторе активности:

  • Черновик (DRAFT) — на странице мероприятия не видна, можно спокойно готовить.
  • Анонс (UPCOMING) — публичная страница показывает «До старта осталось…». Этот статус назначается автоматически, когда вы заполнили дату.
  • Идёт (ONGOING) — активность в процессе. Переключите вручную, когда мероприятие реально стартовало.
  • Завершена (FINISHED) — устанавливается автоматически при публикации результата.

Команды-участники

В редакторе активности есть блок «Участвующие команды» — отмечайте чекбоксами команды мероприятия, которые сыграют в этой активности. Это влияет на:

  • публичный список команд на странице активности;
  • выбор победителя при публикации результата (можно выбрать только из участвующих).

Если ни одна команда не отмечена — система считает, что участвуют все публичные команды мероприятия (старое поведение, для совместимости).

Публикация результата

На странице /admin/activities/<id>/result заполните:

  • Статус: Победа / Поражение / Ничья / Завершено (для не-соревновательных форматов).
  • Счёт — свободный текст (например, «3:1»).
  • Победитель — команда из списка участвующих. Поле опциональное (для ничьей или не-соревновательных активностей).
  • Комментарий — короткий пояснительный текст (опционально).
  • Уведомить участников — галка, по умолчанию включена. При публикации всем участникам мероприятия (с подтверждённым email) уйдёт письмо «Результат опубликован».

После публикации:

  • в ленте мероприятия появится «официальный пост» с итогами;
  • статус активности автоматически становится «Завершена»;
  • на публичной странице мероприятия — блок «Результаты» подхватит этот итог.

Если ошиблись в счёте или фамилии победителя — можно переопубликовать. Снимите галку «Уведомить участников», чтобы не разослать вторую партию писем.

5. Капитан команды

Капитан получает права администрировать одну команду внутри мероприятия. Главное место — страница команды в админке: /admin/teams/<id>.

Профиль команды

Те же блоки, что и у мероприятия: название, slug, логотип, девиз, тема, секции, текст «о команде». Сохраняется как черновик, публикуется кнопкой «Опубликовать».

Управление составом

  • Добавить участника: участник должен быть зарегистрирован на платформе и в мероприятии (то есть его заявка одобрена). Введите email или выберите из списка участников события.
  • Удалить участника: по кнопке рядом с именем. Удалить самого себя или создателя команды нельзя — сначала передайте права другому капитану.
  • Передать капитанство: поменяйте роль другому участнику с «Участник» на «Капитан». Капитанов может быть несколько одновременно.

Командная стена

У каждой команды есть своя приватная лента — её видят только участники команды. Капитан может публиковать там объявления, материалы, обсуждения. На публичной странице команды видна только «публичная» лента (если команда «Публичная»).

6. Модерация контента и пользователей

Жалобы и модерация работают на двух уровнях:

  • Глобальная (/admin/moderation) — для супер-администратора и общих модераторов: видны все жалобы со всех мероприятий.
  • В контексте мероприятия (/admin/events/<slug>/moderation) — для администратора и модератора события: видны только жалобы внутри своего мероприятия.

Действия на жалобу

  • Принять — жалоба обоснована. Параллельно можно: скрыть пост, удалить пост, выдать автору предупреждение, временный мут или бан в рамках мероприятия.
  • Отклонить — пометить жалобу как необоснованную. Автору жалобы уведомления нет (намеренно — чтобы не провоцировать конфликты).
  • Дубль — если жалоба повторяет уже рассмотренную.
  • Массовые действия: отметьте несколько жалоб чекбоксами и нажмите «Принять все» / «Отклонить все».

Меры к пользователям

Предупреждение, мут (запрет писать), бан (полное отстранение от мероприятия) — действуют только в рамках конкретного мероприятия или команды. Журнал решений хранится в аудит-логе и виден на той же странице.

Запросы на удаление фото/видео (152-ФЗ)

Отдельная очередь — /admin/media-takedowns. Каждый запрос нужно либо удовлетворить (физически удалить файлы и/или скрыть посты), либо мотивированно отклонить. В обоих случаях автоматически уходит email пользователю с вашим ответом. Это юридически значимая процедура — не игнорируйте.

7. Документы (положения, регламенты, гайды)

На странице /admin/docs редактируется библиотека документов: положения, регламенты, гайды, новости. Это альтернатива хардкоженным страницам — добавлять и менять можно без перезаливки кода.

Два типа документов

  • Платформенные (без привязки к мероприятию) — создаёт супер-админ. Если включить галку «Показывать в футере» — документ появится в подвале всех публичных страниц рядом с «О платформе» и legal-ссылками. Подходит для общих документов платформы: «Кодекс этики», «Регламент платформы», «Условия использования v2».
  • Привязанные к мероприятию — выберите event в форме создания. Документ виден всем, у кого есть доступ к мероприятию; админ мероприятия может его редактировать. Подходит для «Положение о Кубке N», «Регламент турнира», «Программа мероприятия».

Workflow

  1. Создать → черновик. Документ сохраняется как черновик и не виден публично. На странице видно бейдж «Черновик».
  2. Редактировать. Заголовок, slug (часть URL), краткое описание, категория, тело (Markdown через визуальный редактор, как у постов), галка «В футере». Кнопкой «Открыть публично» можно посмотреть итог в новой вкладке.
  3. Опубликовать. Документ становится доступен по адресу /docs/<slug>. Если включена галка «В футере» и документ платформенный — появится в подвале.
  4. Снять с публикации — документ скрывается публично, остаётся в админке как черновик. Полезно для срочной правки без удаления.
  5. Удалить. Soft-delete (можно восстановить через фильтр «Показать удалённые» в списке).

Категории

Четыре категории, по-русски — это просто метки для удобной фильтрации:

  • Регламенты — положения, правила, регламенты.
  • Руководства — гайды, инструкции, чек-листы.
  • Новости — анонсы, итоги, объявления.
  • Прочее — всё остальное.

Хорошие практики

  • Slug — стабильный. Если документ уже опубликован, не меняйте slug: старые ссылки в письмах и чатах перестанут работать.
  • В футер — только важное. Если выводить туда всё подряд, подвал разрастётся. Оставьте 2-4 ключевых документа.
  • Не путать с legal. Политика конфиденциальности, Условия использования и обработка ПД — отдельные страницы (`/legal/*`) с проверенным юристом текстом. Менять их через «Документы» не нужно.

8. Общие правила и хорошие практики

  • Сначала мягко удаляйте, потом — окончательно. Мягкое удаление обратимо, окончательное — нет. Это касается всех объектов: мероприятий, активностей, команд, пользователей.
  • Идите от листьев к корню. Чтобы удалить мероприятие навсегда — сначала удалите его активности и команды, потом — само мероприятие. Система не делает каскад автоматически — это защита от случайных потерь.
  • Включайте «Превью» перед публикацией. Кнопка есть в редакторе мероприятия, активности и команды — посмотрите глазами гостя, прежде чем нажимать «Опубликовать».
  • Не редактируйте удалённые объекты. Если объект помечен на удаление, сначала восстановите его через «Показать удалённые», только потом меняйте настройки.
  • Бэкапы. Платформа делает ежедневные бэкапы базы (этим занимается техническая команда). Если случайно удалили важное окончательно — напишите в течение суток, шанс восстановить высокий.
  • Уведомления участников — ответственно. Каждая публикация результата с включённой галкой «Уведомить участников» рассылает реальные письма. Не переопубликовывайте по 10 раз с галкой — снимите её для технических правок.
  • Вложения к постам в ленте. В редакторе поста есть две кнопки: «Фото» (картинки до 5 МБ — JPG/PNG/WEBP, рендерятся inline) и «Файл» (документы до 20 МБ — PDF, DOC/DOCX, XLS/XLSX, PPT/PPTX, TXT, CSV, ZIP; рендерятся карточкой со ссылкой «Скачать»). Прикреплять может тот, у кого есть права на управление мероприятием (администратор / модератор / супер-админ).
  • Логи и диагностика. Если кажется, что «что-то не работает» — сначала посмотрите /admin/health. Если есть «недоступные» компоненты — сообщите технической команде.