- Модуль: 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,
],
];
}
}