Удалить всех пользователей кроме администраторов в Битрикс

RSS
Удалить всех пользователей кроме администраторов в Битрикс, Проходимся по всем пользователям и удаляем через API (для будующей заметки)
 
Что бы удалить всех пользователей, кроме администраторов, в 1С-Битрикс
Можно воспользоваться методами
Код
CUser::GetList - получить всех пользователей
CUser::GetUserGroup - получить все группы, к которым принадлежит пользователь
CUser::Delete() - удалить пользователя
Полный пример:
Код
global $USER;
$rsUsers = CUser::GetList(
    ($by = "ID"), 
    ($order = "desc"), 
    false
    );
while ($arUser = $rsUsers->Fetch()) {
 $arGroups = CUser::GetUserGroup($arUser['ID']);
 if (!in_array(1 , $arGroups)) {
     CUser::Delete($arUser['ID']);
 }
}
Пояснения:
- Получили всех пользователей
- Внутри цикла получили группы, к которым принадлежит текущий пользователь
- Проверили, не находится ли он в группе 1 (админы). Просто, проверкой на наличие элемента в массиве групп.
- Удалил пользователя, если его нет в группе 1 (если элемент "1" отсуствует в массиве "arGroups")

Более развернуто и на D7 будет в блоге (прямая ссылка появится позже)
https://camouf.ru/blog-note/
Изменено: Михаил Базаров - 22.11.2021 08:47:48
 
Гы, после удаленных 7000 записей сервак упал
 
Цитата
Илья написал:
Гы, после удаленных 7000 записей сервак упал

Если много и сервачек так себе или настройки не позволяют, временно увеличить лимиты .
Можно консольный скрипт написать с этим же способом.
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
 
Поблагодарить и поддержать:
Или подписаться на boosty канал: Видео на Ютубе