403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/socialnetwork/lib/item/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/socialnetwork/lib/item/workgroupfavorites.php
<?php

/**
 * Bitrix Framework
 * @package bitrix
 * @subpackage socialnetwork
 * @copyright 2001-2012 Bitrix
 */
namespace Bitrix\Socialnetwork\Item;

use Bitrix\Main\Localization\Loc;
use Bitrix\Socialnetwork\WorkgroupFavoritesTable;
use Bitrix\Main\SystemException;

Loc::loadMessages(__FILE__);

class WorkgroupFavorites
{
	public const AVAILABLE_VALUES = [
		'Y', 'N'
	];

	/**
	 * Adds/deletes a worgroup GROUP_ID to/from a favorites list of a user USER_ID
	 * @param array $params
	 * @return bool
	 * @throws \Exception
	 */
	public static function set(array $params = [])
	{
		global $USER;

		$groupId = (int)($params['GROUP_ID'] ?? 0);
		$userId = (int)($params['USER_ID'] ?? $USER->getId());
		$value = (isset($params['VALUE']) && in_array($params['VALUE'], [ 'Y', 'N' ]) ? $params['VALUE'] : false);

		if (
			$groupId <= 0
			|| $userId <= 0
			|| !$value
		)
		{
			throw new SystemException(Loc::getMessage('SOCIALNETWORK_ITEM_WORKGROUPFAVORITES_ERROR_NO_DATA'));
		}

		$workgroupsCount = WorkgroupFavoritesTable::getCount([
			'GROUP_ID' => $groupId,
			'USER_ID' => $userId,
		]);
		$userHasFavoriteGroup = $workgroupsCount > 0;
		$isUnset = $value === 'N';

		if (!(\CSocNetGroup::getById($groupId, true)) && !($isUnset && $userHasFavoriteGroup))
		{
			throw new SystemException(Loc::getMessage('SOCIALNETWORK_ITEM_WORKGROUPFAVORITES_ERROR_NO_ACCESS'));
		}

		if ($value === 'Y')
		{
			return WorkgroupFavoritesTable::set([
				'GROUP_ID' => $groupId,
				'USER_ID' => $userId,
			]);
		}

		return self::delete([
			'GROUP_ID' => $groupId,
			'USER_ID' => $userId,
		]);
	}

	/**
	 * Deletes a worgroup GROUP_ID from a favorites list of a user USER_ID
	 * @param array $params
	 * @return bool
	 */
	public static function delete($params)
	{
		global $CACHE_MANAGER, $USER;

		$groupId = (isset($params["GROUP_ID"]) ? intval($params["GROUP_ID"]) : false);
		$userId = (isset($params["USER_ID"]) ? intval($params["USER_ID"]) : $USER->getId());

		if (
			intval($groupId) <= 0
			|| intval($userId) <= 0
		)
		{
			return false;
		}

		$res = WorkgroupFavoritesTable::delete(array(
			'GROUP_ID' => $groupId,
			'USER_ID' => $userId
		));

		$result = $res->isSuccess();

		if (
			$result
			&& defined("BX_COMP_MANAGED_CACHE")
		)
		{
			$CACHE_MANAGER->clearByTag("sonet_group_favorites_U".$userId);
		}

		return $result;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit