• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/item/helper.php
  • Класс: BitrixSocialnetworkItemHelper
  • Вызов: Helper::getBlogPostPerm
static function getBlogPostPerm(array $params = [])
{
	global $USER, $APPLICATION;

	if (!Loader::includeModule('blog'))
	{
		$APPLICATION->throwException(Loc::getMessage('SOCIALNETWORK_ITEM_HELPER_BLOG_MODULE_NOT_INSTALLED'), 'SONET_CONTROLLER_LIVEFEED_BLOGPOST_ERROR');
		return false;
	}

	$currentUserId = (
		isset($params['USER_ID'])
		&& (int)$params['USER_ID'] > 0
		&& Livefeed::isAdmin()
			? (int)$params['USER_ID']
			: (int)$USER->getId()
	);

	$postId = (int)($params['POST_ID'] ?? 0);
	if ($postId <= 0)
	{
		$APPLICATION->throwException('Wrong post ID', 'SONET_CONTROLLER_LIVEFEED_BLOGPOST_ERROR');
		return false;
	}

	if (
		CSocNetUser::isUserModuleAdmin($currentUserId, SITE_ID)
		|| CMain::getGroupRight('blog') >= 'W'
	)
	{
		return Permissions::FULL;
	}

	$postItem = Post::getById($postId);
	$postFields = $postItem->getFields();

	if ((int)$postFields['AUTHOR_ID'] === $currentUserId)
	{
		$result = Permissions::FULL;
	}
	else
	{
		$permsResult = $postItem->getSonetPerms([
			'CHECK_FULL_PERMS' => true
		]);
		$result = $permsResult['PERM'];
		if (
			$result <= Permissions::READ
			&& $permsResult['READ_BY_OSG']
		)
		{
			$result = Permissions::READ;
		}
	}

	return $result;
}