Работа с пользователями и группами пользователей в Битрикс через D7
Последние записи
Получаем список групп
$result = \Bitrix\Main\GroupTable::getList(array(
'select' => array('NAME','ID','STRING_ID','C_SORT'), //Название, идентификатор, символьный код, сортировка
'filter' => array('!ID'=>'1') //Получаем все группы кроме группы администраторов
));
while ($arGroup = $result->fetch()) {
//Обрабатываем результат
}
Получаем список активных групп пользователя
Так
global $USER;
\Bitrix\Main\UserTable::getUserGroupIds($USER->GetID());
или так
$result = \Bitrix\Main\UserGroupTable::getList(array(
'filter' => array('USER_ID'=>$USER->GetID(),'GROUP.ACTIVE'=>'Y'),
'select' => array('GROUP_ID','GROUP_CODE'=>'GROUP.STRING_ID'), // выбираем идентификатор группы и символьный код группы
'order' => array('GROUP.C_SORT'=>'ASC'), // сортируем в соответствии с сортировкой групп
));
while ($arGroup = $result->fetch()) {
//Обрабатываем результат
}
Получаем список активных пользователей в группе
$result = \Bitrix\Main\UserGroupTable::getList(array(
'filter' => array('GROUP_ID'=>5,'USER.ACTIVE'=>'Y'),
'select' => array('USER_ID','NAME'=>'USER.NAME','LAST_NAME'=>'USER.LAST_NAME'), // выбираем идентификатор п-ля, имя и фамилию
'order' => array('USER.ID'=>'DESC'), // сортируем по идентификатору пользователя
));
while ($arGroup = $result->fetch()) {
//Обрабатываем результат
}
Добавить пользователя в группу
\Bitrix\Main\UserGroupTable::add(array(
"USER_ID" => $REQUEST['USER_ID'],
"GROUP_ID" => 5,
));
Удалить пользователя из группы
\Bitrix\Main\UserGroupTable::delete(array(
"USER_ID" => $REQUEST['USER_ID'],
"GROUP_ID" => 5,
));
Проверяем состоит ли пользователь в группах
CSite::InGroup( array(4,5) )
Получаем пользователя по ID
$dbUser = \Bitrix\Main\UserTable::getList(array(
'select' => array('ID', 'NAME', 'PERSONAL_PHOTO', 'PERSONAL_WWW'),
'filter' => array('ID' => $USER->GetID())
));
if ($arUser = $dbUser->fetch()){
print_r($arUser);
}
Получаем ID пользователя по EMAIL
//D7
use Bitrix\Main\UserTable;
$user = UserTable::getList([
'select' => array('ID'),
'filter' => array('EMAIL' => 'user@mail')
])->fetch();
echo $user['ID'];
//old
$cUser = $USER::GetList(
$by="ID",
$order="desc",
array(
'EMAIL' => 'user@mail'
),
array(
'SELECT' => array('ID')
)
)->fetch();
echo $cUser['ID'];
Комментарии