Реализация модерации регистрации пользователей

В этом документе описаны два подхода к реализации модерации регистрации пользователей под разные бизнес-сценарии:

  • Вариант 1: подходит, когда нужно быстро и просто реализовать процесс модерации регистрации. Использует стандартную функцию регистрации новых пользователей: всем новичкам присваивается роль «Гость» без прав, после чего администратор вручную проверяет анкеты и обновляет роль.

  • Вариант 2: подходит, когда требуется гибкий и кастомизируемый процесс модерации. Через специальную таблицу заявок, настройку workflow и активацию plugin публичных форм реализуется полный цикл — от подачи заявки до автоматического создания нового пользователя.


1. Вариант 1: использование роли «Гость» без прав

1.0 Сценарий применения

Подходит для простых требований к модерации, когда устраивает встроенная регистрация и ручная проверка пользователей администратором.

1.1 Включение парольной аутентификации и регистрации

1.1.1 Открываем страницу аутентификации

Сначала проверим, включена ли регистрация. В системных настройках перейдите на страницу Аутентификация пользователей — здесь управляются все каналы аутентификации, например «Логин по паролю», вход через Google и т. д. (расширяется через plugin).

Переключатель регистрации находится здесь:

1.2 Настройка роли по умолчанию (ключевой шаг)

1.2.1 Создание роли «Гость»

Регистрация в системе включена по умолчанию, но роль по умолчанию может не подходить.

В разделе «Список ролей» создадим роль «Гость» в качестве роли по умолчанию, без каких-либо прав. Все вновь зарегистрированные пользователи будут получать её автоматически.

1.3 Настройка интерфейса проверки регистраций (ключевой шаг)

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

1.4 Тест процесса модерации и ручное обновление роли

  • После регистрации нового пользователя страница по умолчанию отображается пустой
  • В интерфейсе администрирования для пользователей с корректными данными вручную смените роль на нужную — это завершит модерацию.

1.5 Настройка страницы-уведомления (опционально)

1.5.1 Создаём новую страницу, например «Регистрация выполнена», и заполняем её информацией

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

1.5.2 Назначение прав на страницу-уведомление

Переходим в управление правами пользователей и назначаем роли «Гость» доступ к этой странице. После регистрации пользователь будет автоматически перенаправлен туда.

1.6 Расширение полей таблицы пользователей (опционально)

Опциональный шаг: если при регистрации нужно собрать дополнительную информацию для модерации, добавьте соответствующие поля в таблицу пользователей (например, «Причина заявки» или «Код приглашения»). Если достаточно базовой модерации, этот шаг можно пропустить.

1.6.1 Добавление поля заявки

Зайдите в таблицу пользователей и добавьте поле, в которое пользователь будет вводить причину заявки или код приглашения при регистрации.

1.6.2 Включение поля в «Аутентификации пользователей»

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

1.6.3 Добавление полей в страницу модерации

Добавьте те же два поля на страницу модерации, чтобы видеть их в реальном времени и менять роль пользователя.


2. Вариант 2: закрытая регистрация и таблица модерации

2.0 Сценарий применения

Подходит для случаев, когда нужен более гибкий и кастомизируемый процесс модерации.

Через отдельную таблицу заявок, настройки workflow и plugin публичных форм реализуется полный цикл — от подачи заявки до автоматического создания пользователя. Базовые шаги обеспечивают необходимый функционал, а дополнительные расширения можно подключать по мере необходимости.

2.1 Подготовка (ключевой шаг)

2.1.1 Проектирование таблицы заявок

2.1.1.1 Создаём таблицу «Заявки»
  • Создание таблицы В админке NocoBase создайте новую таблицу для хранения заявок на регистрацию.

  • Настройка полей Добавьте в таблицу следующие поля и убедитесь, что типы и описания заполнены правильно:

    Field display nameField nameField interfaceDescription
    IDidIntegerУникальный ID, генерируется системой
    UsernameusernameSingle line textИмя пользователя заявителя
    EmailemailEmailEmail-адрес заявителя
    PhonephonePhoneКонтактный телефон заявителя
    Full Namefull_nameSingle line textПолное имя заявителя
    Application Reasonapplication_reasonLong textПричина заявки
    User Typeuser_typeSingle selectТип будущего пользователя (email, открытая регистрация)
    StatusstatusSingle selectТекущий статус заявки (на модерации, одобрена, отклонена)
    Initial Passwordinitial_passwordSingle line textНачальный пароль (по умолчанию nocobase)
    Created atcreatedAtCreated atВремя создания записи
    Created bycreatedByCreated byАвтор записи
    Last updated atupdatedAtLast updated atВремя последнего обновления
    Last updated byupdatedByLast updated byАвтор последнего обновления
  • Просмотр структуры таблицы Сверьтесь со скриншотом ниже, чтобы убедиться в правильности структуры:

2.1.1.2 Ввод и отображение данных
  • Настройка интерфейса модерации В основном интерфейсе настройте страницу «Модерация регистрации» для отображения заявок.
  • Тестовые данные Зайдите в админ-интерфейс и введите тестовые данные, чтобы убедиться, что они корректно отображаются.

2.2 Настройка workflow

В этом разделе показано, как настроить workflow для автоматического создания пользователя после одобрения заявки.

2.2.1 Создание workflow модерации

2.2.1.1 Новый workflow
  • Открываем интерфейс workflow Зайдите в админке NocoBase в раздел настройки workflow и выберите «Новый workflow».
  • Выбор события-триггера Можно выбрать «Событие после операции» или «Событие до операции». Здесь возьмём событие до операции.
  • Настройка узлов workflow Создайте узел «Создание пользователя», преобразующий данные текущей формы в данные нового пользователя, и настройте маппинг полей и логику обработки. Пример:

2.2.2 Настройка кнопок модерации

2.2.2.1 Добавление кнопок «Одобрить» и «Отклонить»

В форме заявки добавьте две кнопки — «Одобрить» и «Отклонить».

2.2.2.2 Настройка функций кнопок
  • Кнопка «Одобрить»
    • Привяжите её к только что созданному workflow.
    • При отправке устанавливайте поле «Статус» в значение «Одобрено». Пример:
  • Кнопка «Отклонить»
    • При отправке устанавливайте поле «Статус» в значение «Отклонено».
2.2.2.3 Настройка правил связности кнопок

Для предотвращения повторных действий настройте правило связности: когда поле «Статус» не равно «На модерации», кнопки скрываются. Пример:

2.3 Активация и настройка plugin публичных форм

С помощью plugin публичных форм пользователи смогут отправлять заявки через страницу.

2.3.1 Активация plugin публичных форм

2.3.1.1 Активация
  • Открываем менеджер plugin В админ-интерфейсе найдите и активируйте plugin «Публичные формы». Пример:

2.3.2 Создание и настройка публичной формы

2.3.2.1 Создание публичной формы
  • Новая форма В админке создайте публичную форму для отправки заявок.
  • Настройка элементов формы Добавьте необходимые элементы (имя пользователя, email, телефон и т. д.) и настройте правила валидации. Пример:

2.3.3 Активация и настройка plugin публичных форм (ключевой шаг)

2.3.3.1 Тест публичной формы
  • Открываем страницу Перейдите на страницу публичной формы, заполните и отправьте заявку.
  • Проверка работы Убедитесь, что данные попадают в таблицу заявок и что после одобрения через workflow автоматически создаётся новый пользователь. Пример работы:

2.4 Дальнейшее расширение (опциональные шаги)

После реализации базового сценария регистрации и модерации можно расширять функциональность:

2.4.1 Регистрация по коду приглашения

  • Описание: ограничение круга и количества зарегистрированных пользователей через коды приглашений.
  • Идея: добавить в таблицу заявок поле кода приглашения и в «Событии до операции» проверять корректность кода до отправки.

2.4.2 Автоматические email-уведомления

  • Описание: автоматическая отправка писем с результатом модерации, подтверждением регистрации и т. д.
  • Идея: использовать узел отправки email в workflow.

Если возникнут вопросы, заходите в сообщество NocoBase или загляните в официальную документацию. Надеемся, это руководство поможет Вам реализовать модерацию регистрации под Ваши задачи и при необходимости расширить её. Удачной работы и успешного проекта!