- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/log_destination.php
- Класс: CSocNetLogDestination
- Вызов: CSocNetLogDestination::GetSocnetGroupFilteredByFeaturePerms
static function GetSocnetGroupFilteredByFeaturePerms(&$arGroups, $arFeaturePerms)
{
$arGroupsIDs = array();
foreach($arGroups as $value)
{
$arGroupsIDs[] = $value["id"];
}
if (count($arGroupsIDs) <= 0)
{
return;
}
$feature = $arFeaturePerms[0];
$operations = $arFeaturePerms[1];
if (!is_array($operations))
{
$operations = explode(",", $operations);
}
$arGroupsPerms = array();
foreach($operations as $operation)
{
$tmpOps = CSocNetFeaturesPerms::CurrentUserCanPerformOperation(SONET_ENTITY_GROUP, $arGroupsIDs, $feature, $operation);
if (is_array($tmpOps))
{
foreach ($tmpOps as $key=>$val)
{
if (!($arGroupsPerms[$key] ?? null))
{
$arGroupsPerms[$key] = $val;
}
}
}
}
$arGroupsActive = CSocNetFeatures::IsActiveFeature(SONET_ENTITY_GROUP, $arGroupsIDs, $arFeaturePerms[0]);
foreach ($arGroups as $key=>$group)
{
if (
!$arGroupsActive[$group["id"]]
|| !$arGroupsPerms[$group["id"]]
)
{
unset($arGroups[$key]);
}
}
}