import('ttTimeHelper');
import('DateAndTime');
-// Access check.
-if (!ttAccessAllowed('track_own_time')) {
+// Access checks.
+if (!(ttAccessAllowed('track_own_time') || ttAccessAllowed('track_time'))) {
header('Location: access_denied.php');
exit();
}
-
-$cl_id = $request->getParameter('id');
-$time_rec = ttTimeHelper::getRecord($cl_id, $user->getActiveUser());
-
-// Prohibit deleting invoiced records.
-if ($time_rec['invoice_id']) die($i18n->get('error.sys'));
+$cl_id = (int)$request->getParameter('id');
+$time_rec = ttTimeHelper::getRecord($cl_id);
+if (!$time_rec || $time_rec['approved'] || $time_rec['timesheet_id'] || $time_rec['invoice_id']) {
+ // Prohibit deleting not ours, approved, assigned to timesheet, or invoiced records.
+ header('Location: access_denied.php');
+ exit();
+}
+// End of access checks.
// Escape comment for presentation.
$time_rec['comment'] = htmlspecialchars($time_rec['comment']);
$err->add($i18n->get('error.range_locked'));
if ($err->no()) {
-
// Delete the record.
- $result = ttTimeHelper::delete($cl_id, $user->getActiveUser());
-
- if ($result) {
+ if (ttTimeHelper::delete($cl_id)) {
header('Location: time.php');
exit();
} else {