Премодерация зарегистрировавшихся пользователей в Битрикс

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

Для начала в административной панели создадим группу пользователей, в которую будут попадать только что зарегистрировавшиеся. Назовем ее «новые пользователи». Настройки → Пользователи → Группы пользователей.

Затем перейдем в Настройки → Настройки продукта → Настройки модулей → Главный модуль, вкладка «авторизация», ставим галочку напротив «Позволять ли пользователям регистрироваться самостоятельно?» и в списке «При регистрации добавлять в группу:» отмечаем «новые пользователи».

Через панель управления создаем страницу wait_admin.php, где оставляем информацию для пользователей о необходимости проверки их аккаунта администратором и т.п.

Далее открываем файл /bitrix/php_interface/init.php и добавляем туда код:

AddEventHandler("main", "OnAfterUserAuthorize", Array("UserCheck", "checkGroup"));
class UserCheck
{
 function checkGroup($arUser) {
  global $USER;
  $arGroups = $USER->GetUserGroupArray();
  if (in_array(5, $arGroups)) {
   $USER->Logout();
   LocalRedirect('/wait_admin.php');
  }
 }
}

AddEventHandler — функция, добавляющая событие после авторизации пользователя (OnAfterUserAuthorize).

checkGroup — наша функция проверки нахождения пользователя в определенной группе, в нашем случае «новые пользователи» с ID 5.

$USER->GetUserGroupArray() — получаем все группы, в которых состоит пользователь в массив и проверяем его на наличие в нем ID нашей группы (5).

В случае успеха проверки разлогиниваем пользователя и перекидываем его на страницу с объяснениями (wait_admin.php).

Альтернативный вариант проверки пользователя на отношение к какой-либо группе, ID групп перечисляются в массиве:

CSite::InGroup(array(1))

После утверждения пользователя, администратор должен снять у него галочку с группы «новые пользователи».

Похожие статьи

Статья оказалась полезной? Вырази благодарность - поделись в соцсетях

Комментирование отключено