From f022655c123fabf9a236b99f4ffe0591189a4b6d Mon Sep 17 00:00:00 2001 From: Nik Okuntseff Date: Mon, 19 Feb 2018 20:58:07 +0000 Subject: [PATCH] Fixed presentation of the Punch mode checkbox. --- WEB-INF/lib/ttUser.class.php | 25 +++++++++++++++---------- WEB-INF/templates/footer.tpl | 2 +- mobile/time.php | 2 +- mobile/time_edit.php | 2 +- time.php | 2 +- time_edit.php | 2 +- 6 files changed, 20 insertions(+), 15 deletions(-) diff --git a/WEB-INF/lib/ttUser.class.php b/WEB-INF/lib/ttUser.class.php index b340c7bc..815eff7c 100644 --- a/WEB-INF/lib/ttUser.class.php +++ b/WEB-INF/lib/ttUser.class.php @@ -132,18 +132,27 @@ class ttUser { if ($this->role == ROLE_USER) { $this->rights = right_data_entry|right_view_charts|right_view_reports; // TODO: get customized rights from the database instead. - $this->rights_array[] = "data_entry"; // Right to enter time and expense records into Time Tracker. - $this->rights_array[] = "view_own_reports"; // Right to view own reports (for a specific user). - $this->rights_array[] = "view_own_charts"; // Right to view own charts (for a specific user). + // $this->rights_array[] = "data_entry"; // Enter time and expense records into Time Tracker. + // $this->rights_array[] = "view_own_data"; // View own reports and charts. + // $this->rights_array[] = "manage_own_settings"; // Edit own settings. + // $this->rights_array[] = "view_users"; // View user names and roles in a group. } elseif ($this->role == ROLE_CLIENT) { $this->rights = right_view_reports|right_view_invoices; // TODO: how about right_view_charts, too? - $this->rights_array[] = "view_client_reports"; // Right to view reports for a specific client. - $this->rights_array[] = "view_client_charts"; // Right to view charts for a specific client. - $this->rights_array[] = "view_client_invoices"; // Right to view invoices for a specific client. + // $this->rights_array[] = "view_own_data"; // View own reports, charts, and invoices. + // $this->rights_array[] = "manage_own_settings"; // Edit own settings. } elseif ($this->role == ROLE_COMANAGER) { $this->rights = right_data_entry|right_view_charts|right_view_reports|right_view_invoices|right_manage_team; + // $this->rights_array[] = "data_entry"; // Enter time and expense records into Time Tracker. + // $this->rights_array[] = "view_own_data"; // View own reports and charts. + // $this->rights_array[] = "manage_own_settings"; // Edit own settings. + // $this->rights_array[] = "view_users"; // View user names and roles in a group. + // $this->rights_array[] = "on_behalf_data_entry";// Can enter data on behalf of lower roles. + // $this->rights_array[] = "view_data"; // Can view data for lower roles. + $this->rights_array[] = "override_punch_mode"; // Can input any start and finish times for self and lower roles. + // TODO: get rights from the database instead. } elseif ($this->role == ROLE_MANAGER) { $this->rights = right_data_entry|right_view_charts|right_view_reports|right_view_invoices|right_manage_team|right_assign_roles|right_export_team; + $this->rights_array[] = "override_punch_mode"; // Can input any start and finish times for self and lower roles. } elseif ($this->role == ROLE_SITE_ADMIN) { $this->rights = right_administer_site; } @@ -173,10 +182,6 @@ define('ROLE_COMANAGER', 68); // Team co-manager. Can do many things but not define('ROLE_MANAGER', 324); // Team manager. Can do everything for a team. define('ROLE_SITE_ADMIN', 1024); // Site administrator. */ - - // Adjust punch_mode for managers as they are allowed to overwrite start and end times. - // TODO: because of this we currently have a bug on the Team Profile page with "Punch mode" checkbox always off. - if ($this->canManageTeam()) $this->punch_mode = 0; } } diff --git a/WEB-INF/templates/footer.tpl b/WEB-INF/templates/footer.tpl index 17cd70c7..28562116 100644 --- a/WEB-INF/templates/footer.tpl +++ b/WEB-INF/templates/footer.tpl @@ -12,7 +12,7 @@
-
 Anuko Time Tracker 1.17.24.4002 | Copyright © Anuko | +  Anuko Time Tracker 1.17.25.4003 | Copyright © Anuko | {$i18n.footer.credits} | {$i18n.footer.license} | {$i18n.footer.improve} diff --git a/mobile/time.php b/mobile/time.php index 9bb2a26d..666f4c2c 100644 --- a/mobile/time.php +++ b/mobile/time.php @@ -155,7 +155,7 @@ if (MODE_PROJECTS_AND_TASKS == $user->tracking_mode) { if ((TYPE_START_FINISH == $user->record_type) || (TYPE_ALL == $user->record_type)) { $form->addInput(array('type'=>'text','name'=>'start','value'=>$cl_start,'onchange'=>"formDisable('start');")); $form->addInput(array('type'=>'text','name'=>'finish','value'=>$cl_finish,'onchange'=>"formDisable('finish');")); - if ($user->punch_mode) { + if ($user->punch_mode && !in_array('override_punch_mode', $user->rights_array)) { // Make the start and finish fields read-only. $form->getElement('start')->setEnabled(false); $form->getElement('finish')->setEnabled(false); diff --git a/mobile/time_edit.php b/mobile/time_edit.php index 6861262b..e374008f 100644 --- a/mobile/time_edit.php +++ b/mobile/time_edit.php @@ -175,7 +175,7 @@ if (MODE_PROJECTS_AND_TASKS == $user->tracking_mode) { if ((TYPE_START_FINISH == $user->record_type) || (TYPE_ALL == $user->record_type)) { $form->addInput(array('type'=>'text','name'=>'start','value'=>$cl_start,'onchange'=>"formDisable('start');")); $form->addInput(array('type'=>'text','name'=>'finish','value'=>$cl_finish,'onchange'=>"formDisable('finish');")); - if ($user->punch_mode) { + if ($user->punch_mode && !in_array('override_punch_mode', $user->rights_array)) { // Make the start and finish fields read-only. $form->getElement('start')->setEnabled(false); $form->getElement('finish')->setEnabled(false); diff --git a/time.php b/time.php index f7bd3d3d..b6bb000e 100644 --- a/time.php +++ b/time.php @@ -187,7 +187,7 @@ if (MODE_PROJECTS_AND_TASKS == $user->tracking_mode) { if ((TYPE_START_FINISH == $user->record_type) || (TYPE_ALL == $user->record_type)) { $form->addInput(array('type'=>'text','name'=>'start','value'=>$cl_start,'onchange'=>"formDisable('start');")); $form->addInput(array('type'=>'text','name'=>'finish','value'=>$cl_finish,'onchange'=>"formDisable('finish');")); - if ($user->punch_mode) { + if ($user->punch_mode && !in_array('override_punch_mode', $user->rights_array)) { // Make the start and finish fields read-only. $form->getElement('start')->setEnabled(false); $form->getElement('finish')->setEnabled(false); diff --git a/time_edit.php b/time_edit.php index 1a358ed7..2ceb4b3a 100644 --- a/time_edit.php +++ b/time_edit.php @@ -178,7 +178,7 @@ if (MODE_PROJECTS_AND_TASKS == $user->tracking_mode) { if ((TYPE_START_FINISH == $user->record_type) || (TYPE_ALL == $user->record_type)) { $form->addInput(array('type'=>'text','name'=>'start','value'=>$cl_start,'onchange'=>"formDisable('start');")); $form->addInput(array('type'=>'text','name'=>'finish','value'=>$cl_finish,'onchange'=>"formDisable('finish');")); - if ($user->punch_mode) { + if ($user->punch_mode && !in_array('override_punch_mode', $user->rights_array)) { // Make the start and finish fields read-only. $form->getElement('start')->setEnabled(false); $form->getElement('finish')->setEnabled(false); -- 2.20.1