- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/util/user.php
- Класс: BitrixTasksUtilUser
- Вызов: User::everywhere
function everywhere (at least, in CTaskNotifications)
*
* @param array $userIds
* @param array $select
* @return array
*/
public static function getData(array $userIds, array $select = ['*'])
{
$users = [];
$current = static::getId();
if (empty($userIds))
{
$userIds = [$current];
}
$parsed = array_unique(array_filter($userIds, 'intval'));
if (empty($parsed))
{
return $users;
}
$departmentUFCode = IntranetUser::getDepartmentUFCode();
if (UserfieldUser::checkFieldExists($departmentUFCode))
{
$select[] = $departmentUFCode;
}
if (Loader::includeModule('crm'))
{
$select[] = 'UF_USER_CRM_ENTITY';
}
$filter = ['ID' => $parsed];
$externalAuthIds = array_diff(
static::getArtificialExternalAuthIds(),
[
MailUser::getExternalCode(),
ReplicaUser::getExternalCode(),
IMBotUser::getExternalCode(),
]
);
if (!empty($externalAuthIds))
{
$filter['!=EXTERNAL_AUTH_ID'] = $externalAuthIds;
}
$res = UserTable::getList([
'select' => $select,
'filter' => $filter,
]);
while ($user = $res->fetch())
{
$user['IS_EXTRANET_USER'] = ExtranetUser::isExtranet($user);
$user['IS_EMAIL_USER'] = MailUser::isEmail($user);
$user['IS_CRM_EMAIL_USER'] = ($user['IS_EMAIL_USER'] && !empty($user['UF_USER_CRM_ENTITY']));
$user['IS_NETWORK_USER'] = (isset($user['EXTERNAL_AUTH_ID']) && $user['EXTERNAL_AUTH_ID'] === ReplicaUser::getExternalCode());
$users[$user['ID']] = $user;
}
return $users;
}