• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/dispatcher/publicaction/task.php
  • Класс: BitrixTasksDispatcherPublicActionTask
  • Вызов: Task::delegate
public function delegate($id, $userId)
{
	$result = [];

	$oldTask = TaskModel::createFromId((int)$id);
	$newTask = clone $oldTask;
	$members = $newTask->getMembers();
	$members[RoleDictionary::ROLE_RESPONSIBLE] = [
		(int)$userId
	];
	$newTask->setMembers($members);

	if (!(new TaskAccessController($this->userId))->check(ActionDictionary::ACTION_TASK_DELEGATE, $oldTask, $newTask))
	{
		$this->addForbiddenError();
		return $result;
	}

	if ($id = $this->checkTaskId($id))
	{
		try
		{
			$task = CTaskItem::getInstance($id, $this->userId);
			$task->delegate($userId);
		}
		catch (TasksException $exception)
		{
			$result['ERRORS'][] = $exception->getMessageOrigin();
		}
	}

	return $result;
}