X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=time_edit.php;h=ef45226b883c0c59235c92c5f34f04b58c2e4a83;hb=a9b8fe4baec922f724f188e25d98f9e964e9ef26;hp=5dd958b5bd6f31b051c64e3154a1dbdb1aa15fd6;hpb=35af76f7c66ba10e2e1279f2e9afbdb2b09a141d;p=timetracker.git diff --git a/time_edit.php b/time_edit.php index 5dd958b5..ef45226b 100644 --- a/time_edit.php +++ b/time_edit.php @@ -29,7 +29,7 @@ require_once('initialize.php'); import('form.Form'); import('ttUserHelper'); -import('ttTeamHelper'); +import('ttGroupHelper'); import('ttClientHelper'); import('ttTimeHelper'); import('DateAndTime'); @@ -40,24 +40,25 @@ if (!(ttAccessAllowed('track_own_time') || ttAccessAllowed('track_time'))) { exit(); } $cl_id = (int)$request->getParameter('id'); -$user_id = $user->getUser(); -$time_rec = ttTimeHelper::getRecord($cl_id, $user_id); -if (!$time_rec || $time_rec['invoice_id']) { - // Prohibit editing not ours or invoiced records. +$time_rec = ttTimeHelper::getRecord($cl_id); +if (!$time_rec || $time_rec['approved'] || $time_rec['timesheet_id'] || $time_rec['invoice_id']) { + // Prohibit editing not ours, approved, assigned to timesheet, or invoiced records. header('Location: access_denied.php'); exit(); } // End of access checks. +$user_id = $user->getUser(); + // Use custom fields plugin if it is enabled. if ($user->isPluginEnabled('cf')) { require_once('plugins/CustomFields.class.php'); - $custom_fields = new CustomFields($user->group_id); + $custom_fields = new CustomFields(); $smarty->assign('custom_fields', $custom_fields); } $item_date = new DateAndTime(DB_DATEFORMAT, $time_rec['date']); -$confirm_save = $user->getConfirmSave(); +$confirm_save = $user->getConfigOption('confirm_save'); // Initialize variables. $cl_start = $cl_finish = $cl_duration = $cl_date = $cl_note = $cl_project = $cl_task = $cl_billable = null; @@ -112,7 +113,7 @@ $form = new Form('timeRecordForm'); // Dropdown for clients in MODE_TIME. Use all active clients. if (MODE_TIME == $user->tracking_mode && $user->isPluginEnabled('cl')) { - $active_clients = ttTeamHelper::getActiveClients($user->group_id, true); + $active_clients = ttGroupHelper::getActiveClients(true); $form->addInput(array('type'=>'combobox', 'onchange'=>'fillProjectDropdown(this.value);', 'name'=>'client', @@ -138,7 +139,7 @@ if (MODE_PROJECTS == $user->tracking_mode || MODE_PROJECTS_AND_TASKS == $user->t // Dropdown for clients if the clients plugin is enabled. if ($user->isPluginEnabled('cl')) { - $active_clients = ttTeamHelper::getActiveClients($user->group_id, true); + $active_clients = ttGroupHelper::getActiveClients(true); // We need an array of assigned project ids to do some trimming. foreach($project_list as $project) $projects_assigned_to_user[] = $project['id']; @@ -166,7 +167,7 @@ if (MODE_PROJECTS == $user->tracking_mode || MODE_PROJECTS_AND_TASKS == $user->t } if (MODE_PROJECTS_AND_TASKS == $user->tracking_mode) { - $task_list = ttTeamHelper::getActiveTasks($user->group_id); + $task_list = ttGroupHelper::getActiveTasks(); $form->addInput(array('type'=>'combobox', 'name'=>'task', 'style'=>'width: 250px;', @@ -257,6 +258,7 @@ if ($request->isPost()) { } if (!ttValidDate($cl_date)) $err->add($i18n->get('error.field'), $i18n->get('label.date')); if (!ttValidString($cl_note, true)) $err->add($i18n->get('error.field'), $i18n->get('label.note')); + if (!ttTimeHelper::canAdd()) $err->add($i18n->get('error.expired')); // Finished validating user input. // This is a new date for the time record.