- Модуль: extranet
- Путь к файлу: ~/bitrix/modules/extranet/classes/general/extranet.php
- Класс: CExtranet
- Вызов: CExtranet::GetMyGroupsUsers
static function GetMyGroupsUsers($site, $bGadget = false, $bOnlyActive = true)
{
global $USER, $obUsersCache;
if (mb_strlen($site) < 0)
{
return array();
}
$arUsersInMyGroups = $obUsersCache->get($site, $bGadget);
if (is_array($arUsersInMyGroups))
{
return $arUsersInMyGroups;
}
$arUsersInMyGroups = array();
$arUserSocNetGroups = array();
if (
Loader::includeModule('socialnetwork')
&& (
!CSocNetUser::IsCurrentUserModuleAdmin()
|| $bGadget
)
)
{
$dbUsersInGroup = CSocNetUserToGroup::GetList(
array(),
array(
"USER_ID" => $USER->GetID(),
"<=ROLE" => SONET_ROLES_USER,
"GROUP_SITE_ID" => $site,
"GROUP_ACTIVE" => "Y"
),
false,
false,
array("ID", "GROUP_ID")
);
if ($dbUsersInGroup)
{
while ($arUserInGroup = $dbUsersInGroup->GetNext())
{
$arUserSocNetGroups[] = $arUserInGroup["GROUP_ID"];
}
}
if (count($arUserSocNetGroups) > 0)
{
$arFilter = array(
"@GROUP_ID" => $arUserSocNetGroups,
"<=ROLE" => SONET_ROLES_USER
);
if ($bOnlyActive)
{
$arFilter["USER_ACTIVE"] = "Y";
}
$dbUsersInGroup = CSocNetUserToGroup::GetList(
array(),
$arFilter,
false,
false,
array("ID", "USER_ID")
);
if ($dbUsersInGroup)
{
while ($arUserInGroup = $dbUsersInGroup->GetNext())
{
$arUsersInMyGroups[] = $arUserInGroup["USER_ID"];
}
}
}
}
else
{
$dbUsers = CUser::GetList(
'ID',
'ASC',
[
"ACTIVE" => "Y",
"GROUPS_ID" => [ self::GetExtranetUserGroupID() ],
]
);
if ($dbUsers)
{
while ($arUser = $dbUsers->GetNext())
{
$arUsersInMyGroups[] = $arUser["ID"];
}
}
}
if (count($arUsersInMyGroups) > 0)
{
$arUsersInMyGroups = array_unique($arUsersInMyGroups);
}
$obUsersCache->set($site, $bGadget, $arUsersInMyGroups);
return $arUsersInMyGroups;
}