• Модуль: timeman
  • Путь к файлу: ~/bitrix/modules/timeman/lib/controller/permissions.php
  • Класс: BitrixTimemanControllerPermissions
  • Вызов: Permissions::saveTaskAction
public function saveTaskAction()
{
	if (!$this->checkAccess())
	{
		$this->addError(new Error(Loc::getMessage('TIMEMAN_REST_SETTINGS_ERROR_ACCESS_DENIED')));
		return;
	}
	$form = new TaskForm();
	$form->load($this->getRequest());
	if (!$form->validate())
	{
		$this->addError($form->getFirstError());
		return;
	}
	if ($form->isSystem === 'Y')
	{
		$this->addError(new Error(Loc::getMessage('TIMEMAN_REST_SETTINGS_ERROR_CAN_NOT_EDIT_SYSTEM_TASK')));
		return;
	}
	$operations = $form->getOperationsNames();

	// every role includes this operation by default
	$operations[] = UserPermissionsManager::OP_MANAGE_WORKTIME;

	if ($form->id)
	{
		$task = CTask::getList(['ID' => 'asc'], ['MODULE_ID' => 'timeman', 'ID' => $form->id])->fetch();
		if ($task && !empty($task['ID']))
		{
			CTask::Update(['NAME' => $form->name], $task['ID']);
			CTask::SetOperations($task['ID'], $operations, true);
		}
	}
	else
	{
		$newTaskId = CTask::Add([
			'NAME' => $form->name,
			'DESCRIPTION' => '',
			'LETTER' => '',
			'BINDING' => 'module',
			'MODULE_ID' => 'timeman',
		]);
		if ($newTaskId)
		{
			CTask::SetOperations($newTaskId, $operations, true);
		}
		return [
			'task' => [
				'id' => $newTaskId,
				'name' => $form->name,
			],
		];
	}
}