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/pull/lib/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/pull/lib/channel.php
<?php
namespace Bitrix\Pull;


class Channel
{
	const TYPE_PRIVATE = 'private';
	const USER_SELF = null;

	public static function getPublicId($params)
	{
		$config['USERS'] = $params['USER_ID'] ?? self::USER_SELF;
		$config['TYPE'] = $params['TYPE'] ?? self::TYPE_PRIVATE;
		$config['JSON'] = isset($params['JSON']) && $params['JSON'] == 'Y';

		$result = self::getPublicIds($config);
		if ($result)
		{
			$result = array_shift($result);
		}

		return $result;
	}

	public static function getPublicIds($params = [])
	{
		if (!\CPullOptions::GetQueueServerStatus() || \CPullOptions::GetQueueServerVersion() < 4)
			return false;

		$users = $params['USERS'] ?? self::USER_SELF;
		$type = $params['TYPE'] ?? self::TYPE_PRIVATE;
		$returnJson = $params['JSON']? true: false;

		$userList = [];
		if (is_array($users))
		{
			foreach ($users as $userId)
			{
				$userId = intval($userId);
				if ($userId > 0)
				{
					$userList[$userId] = $userId;
				}
			}
		}
		else
		{
			if ($users == self::USER_SELF)
			{
				global $USER;
				$userId = $USER->GetID();
			}
			else
			{
				$userId = intval($users);
			}
			if ($userId <= 0)
			{
				return false;
			}
			$userList[] = $userId;
		}

		$config = [];
		foreach ($userList as $userId)
		{
			$privateChannel = \CPullChannel::Get($userId, true, false, $type);

			$config[$userId] = Array(
				'USER_ID' => (int)$userId,
				'PUBLIC_ID' => $privateChannel["CHANNEL_PUBLIC_ID"],
				'SIGNATURE' => \CPullChannel::GetPublicSignature($privateChannel["CHANNEL_PUBLIC_ID"]),
				'START' => $privateChannel['CHANNEL_DT'],
				'END' => $privateChannel['CHANNEL_DT'] + \CPullChannel::CHANNEL_TTL,
			);
		}

		if ($returnJson)
		{
			foreach ($config as $userId => $userConfig)
			{
				$userConfig = array_change_key_case($userConfig, CASE_LOWER);
				$userConfig['start'] = date('c', $userConfig['start']);
				$userConfig['end'] = date('c', $userConfig['end']);
				$config[$userId] = $userConfig;
			}
		}

		return $config;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit