- Модуль: extranet
- Путь к файлу: ~/bitrix/modules/extranet/classes/general/extranet.php
- Класс: CExtranet
- Вызов: CExtranet::getMyGroupsUsersSimple
static function getMyGroupsUsersSimple($extranetSite, $params = array()): array
{
global $USER, $obUsersCache;
$result = array();
if (mb_strlen($extranetSite) < 0)
{
return $result;
}
$userId = 0;
if (
is_array($params)
&& isset($params['userId'])
&& (int)$params['userId'] > 0
)
{
$userId = (int)$params['userId'];
}
elseif (
is_object($USER)
&& $USER->isAuthorized()
)
{
$userId = $USER->getId();
}
if ($userId <= 0)
{
return $result;
}
$arUsersInMyGroups = $obUsersCache->get($extranetSite, false, $userId);
if (is_array($arUsersInMyGroups))
{
return $arUsersInMyGroups;
}
$arUsersInMyGroups = array();
if (Loader::includeModule('socialnetwork'))
{
$query = new Query(UserToGroupTable::getEntity());
$query->setSelect(array('GROUP_ID'));
$query->setFilter(array(
'<=ROLE' => UserToGroupTable::ROLE_USER,
'=USER_ID' => $userId,
'=GROUP.ACTIVE' => 'Y',
'=GROUP.WorkgroupSite:GROUP.SITE_ID' => $extranetSite
));
$subQuery = $query->getQuery();
$res = UserToGroupTable::getList(array(
'order' => array(),
'filter' => array(
'@GROUP_ID' => new BitrixMainDBSqlExpression($subQuery),
'<=ROLE' => UserToGroupTable::ROLE_USER,
'=USER.ACTIVE' => 'Y',
),
'select' => array('USER_ID'),
'group' => array('USER_ID')
));
while ($arUserInGroup = $res->fetch())
{
$arUsersInMyGroups[] = $arUserInGroup["USER_ID"];
}
}
$obUsersCache->SetForKey($userId."_".$extranetSite."_N", $arUsersInMyGroups);
return $arUsersInMyGroups;
}