yous
@yous

Bitrix CUser::GetList как выбрать всех пользователей кроме администраторов?

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

$filterUser = array(
   "ACTIVE" => 'Y',
 // "!GROUPS_ID"=>[1] -- так не будет фильтровать
);
$userResult = CUser::GetList(($by="NAME"), ($order="ASC"), $filterUser);
  • Вопрос задан
  • 8769 просмотров
Решения вопроса 1
serginhold
@serginhold
это тот момент, когда не нужно пользоваться древним api, есть \Bitrix\Main\UserGroupTable
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Выбрать идентификаторы всех групп, удалить из полученного массива идентификатор группы администраторов, отфильтровать по оставшимся.
Ответ написан
alexyarik
@alexyarik
Битрикс разработчик
На выходе массив без админов
<?
global $USER;
        $users = CUser::GetList(
            ($by="id"),
            ($order="desc"),
            array(),
            array("SELECT" => array('*'))
        );	
	        $userArray = array();
$arrayGroupIds = array();
			while ($user = $users->Fetch()) {
if (in_array(1, CUser::GetUserGroup($user['ID'])))
{
} else {
			$userArray [] =$user;
}
        }
?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы