- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/componenthelper.php
- Класс: BitrixSocialnetworkComponentHelper
- Вызов: ComponentHelper::convertBlogPostPermToDestinationList
static function convertBlogPostPermToDestinationList($params, &$resultFields)
{
global $USER;
$result = array();
if (!Loader::includeModule('blog'))
{
return $result;
}
$postId = (
isset($params['POST_ID'])
&& (int)$params['POST_ID'] > 0
? (int)$params['POST_ID']
: false
);
$postFields = array();
if ($postId)
{
$postFields = BitrixBlogItemPost::getById($postId)->getFields();
}
$authorId = (
!$postId
&& isset($params['AUTHOR_ID'])
&& (int)$params['AUTHOR_ID'] > 0
? (int)$params['AUTHOR_ID']
: $postFields['AUTHOR_ID']
);
$extranetUser = (
$params['IS_EXTRANET_USER'] ?? self::isCurrentUserExtranet([
'siteId' => SITE_ID,
'userId' => $USER->getId(),
])
);
$siteId = (
!empty($params['SITE_ID'])
? $params['SITE_ID']
: SITE_ID
);
$socNetPermsListOld = array();
if ($postId > 0)
{
$socNetPermsListOld = CBlogPost::getSocNetPerms($postId);
}
$authorInDest = (
!empty($postFields)
&& !empty($postFields['AUTHOR_ID'])
&& !empty($socNetPermsListOld)
&& !empty($socNetPermsListOld['U'])
&& isset($socNetPermsListOld['U'][$postFields['AUTHOR_ID']])
&& in_array('U' . $postFields['AUTHOR_ID'], $socNetPermsListOld['U'][$postFields['AUTHOR_ID']], true)
);
$permList = (
isset($params['PERM'])
&& is_array($params['PERM'])
? $params['PERM']
: array()
);
$allowToAll = self::getAllowToAllDestination();
if(
empty($permList)
&& isset($params["IS_REST"])
&& $params["IS_REST"]
&& $allowToAll
)
{
$permList = array("UA" => array("UA"));
}
foreach ($permList as $v => $k)
{
if (
$v <> ''
&& is_array($k)
&& !empty($k)
)
{
foreach ($k as $vv)
{
if (
$vv <> ''
&& (
empty($postFields['AUTHOR_ID'])
|| $vv !== 'U'.$postFields['AUTHOR_ID']
|| $authorInDest
)
)
{
$result[] = $vv;
}
}
}
}
$result = self::checkBlogPostDestinationList(array(
'DEST' => $result,
'SITE_ID' => $siteId,
'AUTHOR_ID' => $authorId,
'IS_EXTRANET_USER' => $extranetUser,
'POST_ID' => $postId
), $resultFields);
return $result;
}