]> wagnertech.de Git - timetracker.git/commitdiff
Split data_entry right into track_time and track_expenses.
authorNik Okuntseff <support@anuko.com>
Tue, 13 Mar 2018 21:22:56 +0000 (21:22 +0000)
committerNik Okuntseff <support@anuko.com>
Tue, 13 Mar 2018 21:22:56 +0000 (21:22 +0000)
23 files changed:
WEB-INF/lib/ttRoleHelper.class.php
WEB-INF/lib/ttTeamHelper.class.php
WEB-INF/lib/ttUser.class.php
WEB-INF/templates/footer.tpl
dbinstall.php
expense_delete.php
expense_edit.php
expenses.php
mobile/expense_delete.php
mobile/expense_edit.php
mobile/expenses.php
mobile/projects.php
mobile/time.php
mobile/time_delete.php
mobile/time_edit.php
mobile/timer.php
mysql.sql
projects.php
role_add.php
time.php
time_delete.php
time_edit.php
week.php

index 20d31bcd817fa295d2389ad6f06b18fff0701dc0..bcd66051f3932c51ca1d2d5687089eacfa28f11f 100644 (file)
@@ -111,7 +111,7 @@ class ttRoleHelper {
   }
 
   // isClientRole determines if the role is a "client" role.
-  // This simply means the role has no "data_entry" right.
+  // This simply means the role has no "track_own_time" right.
   static function isClientRole($role_id) {
     global $user;
     $mdb2 = getConnection();
@@ -122,7 +122,7 @@ class ttRoleHelper {
     if (!is_a($res, 'PEAR_Error')) {
       $val = $res->fetchRow();
       if ($val['rights']) {
-        return !in_array('data_entry', explode(',', $val['rights']));
+        return !in_array('track_own_time', explode(',', $val['rights']));
       }
     }
     return false;
@@ -222,8 +222,8 @@ class ttRoleHelper {
     $mdb2 = getConnection();
 
     $rights_client = 'view_own_reports,view_own_charts,view_own_invoices,manage_own_settings';
-    $rights_user = 'data_entry,view_own_reports,view_own_charts,manage_own_settings,view_users';
-    $rights_supervisor = $rights_user.',on_behalf_data_entry,view_reports,view_charts,override_punch_mode,swap_roles,approve_timesheets';
+    $rights_user = 'track_own_time,track_own_expenses,view_own_reports,view_own_charts,manage_own_settings,view_users';
+    $rights_supervisor = $rights_user.',track_time,track_expenses,view_reports,view_charts,override_punch_mode,swap_roles,approve_timesheets';
     $rights_comanager = $rights_supervisor.',manage_users,manage_projects,manage_tasks,manage_custom_fields,manage_clients,manage_invoices';
     $rights_manager = $rights_comanager.',manage_features,manage_basic_settings,manage_advanced_settings,manage_roles,export_data,manage_subgroups';
 
@@ -280,8 +280,8 @@ class ttRoleHelper {
     global $user;
 
     $rights_client = 'view_own_reports,view_own_charts,view_own_invoices,manage_own_settings';
-    $rights_user = 'data_entry,view_own_reports,view_own_charts,manage_own_settings,view_users';
-    $rights_supervisor = $rights_user.',on_behalf_data_entry,view_reports,view_charts,override_punch_mode,swap_roles,approve_timesheets';
+    $rights_user = 'track_own_time,track_own_expenses,view_own_reports,view_own_charts,manage_own_settings,view_users';
+    $rights_supervisor = $rights_user.',track_time,track_expenses,view_reports,view_charts,override_punch_mode,swap_roles,approve_timesheets';
     $rights_comanager = $rights_supervisor.',manage_users,manage_projects,manage_tasks,manage_custom_fields,manage_clients,manage_invoices';
     $rights_manager = $rights_comanager.',manage_features,manage_basic_settings,manage_advanced_settings,manage_roles,export_data,manage_subgroups';
 
index d20f2a23033debf9ea78a19dfa874f6edb3199d2..38a2d8196d5428da62e32215b6e00c3a23e883b2 100644 (file)
@@ -276,9 +276,9 @@ class ttTeamHelper {
     $result = array();
     if (!is_a($res, 'PEAR_Error')) {
       while ($val = $res->fetchRow()) {
-        $val['is_client'] = in_array('data_entry', explode(',', $val['rights'])) ? 0 : 1; // Clients do not have data entry right.
+        $val['is_client'] = in_array('track_own_time', explode(',', $val['rights'])) ? 0 : 1; // Clients do not have data entry right.
         if ($val['is_client'] && !$user->isPluginEnabled('cl'))
-          continue; // Skip adding a client role/
+          continue; // Skip adding a client role.
         $result[] = $val;
       }
     }
@@ -296,7 +296,7 @@ class ttTeamHelper {
     $result = array();
     if (!is_a($res, 'PEAR_Error')) {
       while ($val = $res->fetchRow()) {
-        $val['is_client'] = in_array('data_entry', explode(',', $val['rights'])) ? 0 : 1; // Clients do not have data entry right.
+        $val['is_client'] = in_array('track_own_time', explode(',', $val['rights'])) ? 0 : 1; // Clients do not have data entry right.
         $result[] = $val;
       }
     }
@@ -409,7 +409,7 @@ class ttTeamHelper {
     $result = array();
     $mdb2 = getConnection();
 
-    if (ROLE_CLIENT == $user->role && $user->client_id)
+    if ($user->isClient())
       $client_part = " and i.client_id = $user->client_id";
 
     $sql = "select i.id, i.name, i.date, i.client_id, i.status, c.name as client_name from tt_invoices i
index fa9f0201384f7bca10d6f168b8d56df746bbe25f..2f7ff9584d149c257403395d530c61e20d626f96 100644 (file)
@@ -60,8 +60,8 @@ class ttUser {
   var $custom_logo = 0;         // Whether to use a custom logo for team.
   var $lock_spec = null;        // Cron specification for record locking.
   var $workday_minutes = 480;   // Number of work minutes in a regular day.
-  var $rights = array();        // An array of user rights such as 'data_entry', etc.
-  var $is_client = false;       // Whether user is a client as determined by missing 'data_entry' right.
+  var $rights = array();        // An array of user rights such as 'track_own_time', etc.
+  var $is_client = false;       // Whether user is a client as determined by missing 'track_own_time' right.
 
   // Constructor.
   function __construct($login, $id = null) {
@@ -97,7 +97,7 @@ class ttUser {
       $this->role = $val['role'];
       $this->role_id = $val['role_id'];
       $this->rights = explode(',', $val['rights']);
-      $this->is_client = !in_array('data_entry', $this->rights);
+      $this->is_client = !in_array('track_own_time', $this->rights);
       $this->rank = $val['rank'];
       // Downgrade rank to legacy role, if it is still in use.
       if ($this->role > 0 && $this->rank > $this->role)
@@ -142,11 +142,16 @@ class ttUser {
     }
   }
 
-  // The getActiveUser returns user id on behalf of whom current user is operating.
+  // The getActiveUser returns user id on behalf of whom the current user is operating.
   function getActiveUser() {
     return ($this->behalf_id ? $this->behalf_id : $this->id);
   }
 
+  // can - determines whether user has a right to do something.
+  function can($do_something) {
+    return in_array($do_something, $this->rights);
+  }
+
   // isAdmin - determines whether current user is admin (has right_administer_site).
   function isAdmin() {
     return (right_administer_site & $this->role);
index b4683b9bbfdaf3bfab183394c20b79f01ad36652..364fc3490310d110b549194baaf96be0733c7d33 100644 (file)
@@ -12,7 +12,7 @@
       <br>
       <table cellspacing="0" cellpadding="4" width="100%" border="0">
         <tr>
-          <td align="center">&nbsp;Anuko Time Tracker 1.17.42.4068 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
+          <td align="center">&nbsp;Anuko Time Tracker 1.17.43.4069 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
             <a href="https://www.anuko.com/lp/tt_4.htm" target="_blank">{$i18n.footer.credits}</a> |
             <a href="https://www.anuko.com/lp/tt_5.htm" target="_blank">{$i18n.footer.license}</a> |
             <a href="https://www.anuko.com/lp/tt_7.htm" target="_blank">{$i18n.footer.improve}</a>
index d461dcb7b9710a3fa7767b005bcbf0c375840b25..3db74cc54aab811ba2b6b5cd5526a28e44a42579 100644 (file)
@@ -722,7 +722,7 @@ if ($_POST) {
     setChange("ALTER TABLE `tt_log` ADD `paid` tinyint(4) NULL default '0' AFTER `billable`");
   }
 
-  if ($_POST["convert11400to11740"]) {
+  if ($_POST["convert11400to11743"]) {
     setChange("ALTER TABLE `tt_teams` DROP `address`");
     setChange("ALTER TABLE `tt_fav_reports` ADD `report_spec` text default NULL AFTER `user_id`");
     setChange("ALTER TABLE `tt_fav_reports` ADD `paid_status` tinyint(4) default NULL AFTER `invoice`");
@@ -757,6 +757,9 @@ if ($_POST) {
     setChange("update `tt_roles` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.17.35') set rights = replace(rights, 'view_data', 'view_reports,view_charts') where team_id > 0");
     setChange("update `tt_roles` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.17.35') set rights = replace(rights, 'view_own_charts,manage_own_settings', 'view_own_charts,view_own_invoices,manage_own_settings') where team_id > 0 and rank = 16");
     setChange("UPDATE `tt_site_config` SET `param_value` = '1.17.40' where param_name = 'version_db'");
+    setChange("update `tt_roles` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.17.40') set rights = replace(rights, 'on_behalf_data_entry', 'track_time,track_expenses')");
+    setChange("update `tt_roles` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.17.40') set rights = replace(rights, 'data_entry', 'track_own_time,track_own_expenses')");
+    setChange("UPDATE `tt_site_config` SET `param_value` = '1.17.43' where param_name = 'version_db'");
   }
 
   if ($_POST["cleanup"]) {
@@ -802,7 +805,7 @@ if ($_POST) {
 <h2>DB Install</h2>
 <table width="80%" border="1" cellpadding="10" cellspacing="0">
   <tr>
-    <td width="80%"><b>Create database structure (v1.17.40)</b>
+    <td width="80%"><b>Create database structure (v1.17.43)</b>
     <br>(applies only to new installations, do not execute when updating)</br></td><td><input type="submit" name="crstructure" value="Create"></td>
   </tr>
 </table>
@@ -838,8 +841,8 @@ if ($_POST) {
     <td><input type="submit" name="convert1600to11400" value="Update"><br></td>
   </tr>
   <tr valign="top">
-    <td>Update database structure (v1.14 to v1.17.40)</td>
-    <td><input type="submit" name="convert11400to11740" value="Update"><br></td>
+    <td>Update database structure (v1.14 to v1.17.43)</td>
+    <td><input type="submit" name="convert11400to11743" value="Update"><br></td>
   </tr>
 </table>
 
index d17f251e9a24457865012dcd3c5488eb2d167d89..d5b4e8d270ef8a3fcc334df11a7edcb141ced6b7 100644 (file)
@@ -32,7 +32,7 @@ import('DateAndTime');
 import('ttExpenseHelper');
 
 // Access check.
-if (!ttAccessAllowed('data_entry') || !$user->isPluginEnabled('ex')) {
+if (!ttAccessAllowed('track_own_expenses') || !$user->isPluginEnabled('ex')) {
   header('Location: access_denied.php');
   exit();
 }
index 3fd23591202d2c4e5bf275ca6ce4d254b856b17b..dbd14d96de806521ee14746d86bf454246bddca3 100644 (file)
@@ -33,7 +33,7 @@ import('DateAndTime');
 import('ttExpenseHelper');
 
 // Access check.
-if (!ttAccessAllowed('data_entry') || !$user->isPluginEnabled('ex')) {
+if (!ttAccessAllowed('track_own_expenses') || !$user->isPluginEnabled('ex')) {
   header('Location: access_denied.php');
   exit();
 }
index a6502fa17342ed2b7caa22c2d17a2c335ff930fa..ca681d4132ff1a29c9aef7222926e62bbac107f6 100644 (file)
@@ -34,7 +34,7 @@ import('DateAndTime');
 import('ttExpenseHelper');
 
 // Access check.
-if (!ttAccessAllowed('data_entry') || !$user->isPluginEnabled('ex')) {
+if (!ttAccessAllowed('track_own_expenses') || !$user->isPluginEnabled('ex')) {
   header('Location: access_denied.php');
   exit();
 }
index 1b4a3905a5bc7eafdcabfc916cfd809bb0e9c93b..da902b4f0165ac95543d6a78a4c371809704431b 100644 (file)
@@ -32,7 +32,7 @@ import('DateAndTime');
 import('ttExpenseHelper');
 
 // Access check.
-if (!ttAccessAllowed('data_entry') || !$user->isPluginEnabled('ex')) {
+if (!ttAccessAllowed('track_own_expenses') || !$user->isPluginEnabled('ex')) {
   header('Location: access_denied.php');
   exit();
 }
index e54ffb05872e528b745398b81af61cba1c3498f5..fff249e7709a25fe705c88409efd9774986b03c0 100644 (file)
@@ -33,7 +33,7 @@ import('DateAndTime');
 import('ttExpenseHelper');
 
 // Access check.
-if (!ttAccessAllowed('data_entry') || !$user->isPluginEnabled('ex')) {
+if (!ttAccessAllowed('track_own_expenses') || !$user->isPluginEnabled('ex')) {
   header('Location: access_denied.php');
   exit();
 }
index 24c78ce0bca95b81f734a8de84cd7df0341f8dfd..40b3a342ee0339fbc740e2da008e7b1ea85e41ab 100644 (file)
@@ -34,7 +34,7 @@ import('DateAndTime');
 import('ttExpenseHelper');
 
 // Access check.
-if (!ttAccessAllowed('data_entry') || !$user->isPluginEnabled('ex')) {
+if (!ttAccessAllowed('track_own_expenses') || !$user->isPluginEnabled('ex')) {
   header('Location: access_denied.php');
   exit();
 }
index 0a9c490c5ffcfa7e8eab5781f9462aeda7915c9f..a6aa0448d84d43f239e3e2e2367b40fdf736fb06 100644 (file)
@@ -31,7 +31,7 @@ import('form.Form');
 import('ttTeamHelper');
 
 // Access check.
-if (!ttAccessAllowed('data_entry') || (MODE_PROJECTS != $user->tracking_mode && MODE_PROJECTS_AND_TASKS != $user->tracking_mode)) {
+if (!ttAccessAllowed('track_own_time') || (MODE_PROJECTS != $user->tracking_mode && MODE_PROJECTS_AND_TASKS != $user->tracking_mode)) {
   header('Location: access_denied.php');
   exit();
 }
index dcef6483876921f6004be4244812f8b9adcbf512..1a4b235c8b39eeb45fa1b3ad0109df289d119553 100644 (file)
@@ -35,7 +35,7 @@ import('ttTimeHelper');
 import('DateAndTime');
 
 // Access check.
-if (!ttAccessAllowed('data_entry')) {
+if (!ttAccessAllowed('track_own_time')) {
   header('Location: access_denied.php');
   exit();
 }
index 81e0c6540c7325444f0f9a5b75fc94534d0fe01b..63884d23378cdf85f724ca1b2107c200080bd803 100644 (file)
@@ -33,7 +33,7 @@ import('ttTimeHelper');
 import('DateAndTime');
 
 // Access check.
-if (!ttAccessAllowed('data_entry')) {
+if (!ttAccessAllowed('track_own_time')) {
   header('Location: access_denied.php');
   exit();
 }
index 74805ab7e2a2de805fb2c0a79ec74c3a310aee57..25c5c92c386a9dfce8ba364eb646a7d499116345 100644 (file)
@@ -35,7 +35,7 @@ import('ttTimeHelper');
 import('DateAndTime');
 
 // Access check.
-if (!ttAccessAllowed('data_entry')) {
+if (!ttAccessAllowed('track_own_time')) {
   header('Location: access_denied.php');
   exit();
 }
index 47310b72699cd726f089d466d92fc3ed7ece60e7..6851052f03f9b70ce9df5c9fa23891f69d74ff41 100644 (file)
@@ -35,7 +35,7 @@ import('ttTimeHelper');
 import('DateAndTime');
 
 // Access check.
-if (!ttAccessAllowed('data_entry')) {
+if (!ttAccessAllowed('track_own_time')) {
   header('Location: access_denied.php');
   exit();
 }
index ffba70f1991b95b79a76602f8103d82d8ab7a127..a3c1cbc037aa0c54cc73474fe97ee2a234a319f2 100644 (file)
--- a/mysql.sql
+++ b/mysql.sql
@@ -66,7 +66,7 @@ create unique index role_idx on tt_roles(team_id, rank, status);
 
 # Insert site-wide roles - site administrator and top manager.
 INSERT INTO `tt_roles` (`team_id`, `name`, `rank`, `rights`) VALUES (0, 'Site administrator', 1024, 'administer_site');
-INSERT INTO `tt_roles` (`team_id`, `name`, `rank`, `rights`) VALUES (0, 'Top manager', 512, 'data_entry,view_own_reports,view_own_charts,view_own_invoices,manage_own_settings,view_users,on_behalf_data_entry,view_reports,view_charts,override_punch_mode,swap_roles,approve_timesheets,manage_users,manage_projects,manage_tasks,manage_custom_fields,manage_clients,manage_invoices,manage_features,manage_basic_settings,manage_advanced_settings,manage_roles,export_data,manage_subgroups');
+INSERT INTO `tt_roles` (`team_id`, `name`, `rank`, `rights`) VALUES (0, 'Top manager', 512, 'track_own_time,track_own_expenses,view_own_reports,view_own_charts,view_own_invoices,manage_own_settings,view_users,track_time,track_expenses,view_reports,view_charts,override_punch_mode,swap_roles,approve_timesheets,manage_users,manage_projects,manage_tasks,manage_custom_fields,manage_clients,manage_invoices,manage_features,manage_basic_settings,manage_advanced_settings,manage_roles,export_data,manage_subgroups');
 
 
 #
@@ -427,4 +427,4 @@ CREATE TABLE `tt_site_config` (
   PRIMARY KEY  (`param_name`)
 );
 
-INSERT INTO `tt_site_config` (`param_name`, `param_value`, `created`) VALUES ('version_db', '1.17.40', now()); # TODO: change when structure changes.
+INSERT INTO `tt_site_config` (`param_name`, `param_value`, `created`) VALUES ('version_db', '1.17.43', now()); # TODO: change when structure changes.
index d5f3bc12e9aaf85551d683b101d3e87db095d4fc..ce7bb9a1a4e0717a1aed84d9318e55da42363114 100644 (file)
@@ -31,7 +31,7 @@ import('form.Form');
 import('ttTeamHelper');
 
 // Access check.
-if (!ttAccessAllowed('data_entry') || (MODE_PROJECTS != $user->tracking_mode && MODE_PROJECTS_AND_TASKS != $user->tracking_mode)) {
+if (!ttAccessAllowed('track_own_time') || (MODE_PROJECTS != $user->tracking_mode && MODE_PROJECTS_AND_TASKS != $user->tracking_mode)) {
   header('Location: access_denied.php');
   exit();
 }
index 684ee11bbf6188c803e5aea5012f0a5321cf9f1a..7a01cfcd1a6155c3c702a26b3f07aac246f4021e 100644 (file)
@@ -67,7 +67,7 @@ if ($request->isPost()) {
           'name' => $cl_name,
           'rank' => $cl_rank,
           'description' => $cl_description,
-          'rights' => 'data_entry,view_own_reports,view_own_charts,manage_own_settings,view_users', // Default user rights.
+          'rights' => 'track_own_time,track_own_expenses,view_own_reports,view_own_charts,manage_own_settings,view_users', // Default user rights.
           'status' => ACTIVE))) {
           header('Location: roles.php');
           exit();
index aeeedd25c2b959741e34455bf813ffa61669bd7d..62d6bced28aa900e2eda64463450191046fb3302 100644 (file)
--- a/time.php
+++ b/time.php
@@ -42,7 +42,7 @@ import('DateAndTime');
 // }
 
 // Access check.
-if (!ttAccessAllowed('data_entry')) {
+if (!ttAccessAllowed('track_own_time')) {
   header('Location: access_denied.php');
   exit();
 }
index 3b4d95c2ef806334b79a4801d879eeafc9a4d6e3..0cdd8816e8c85145f4577b1c10c3428a75bc492e 100644 (file)
@@ -33,7 +33,7 @@ import('ttTimeHelper');
 import('DateAndTime');
 
 // Access check.
-if (!ttAccessAllowed('data_entry')) {
+if (!ttAccessAllowed('track_own_time')) {
   header('Location: access_denied.php');
   exit();
 }
index b665bf862486cea03b8da011b41c1561c0384978..3f2035c98aea4d3d1aa6053d2dc778446a7cc3c7 100644 (file)
@@ -35,7 +35,7 @@ import('ttTimeHelper');
 import('DateAndTime');
 
 // Access check.
-if (!ttAccessAllowed('data_entry')) {
+if (!ttAccessAllowed('track_own_time')) {
   header('Location: access_denied.php');
   exit();
 }
index be89944c99ba3dbdc3a4c6558beabbfdd3a04059..6bd2d492c7fc1a9ec4fc90f878d60971fa2b47b3 100644 (file)
--- a/week.php
+++ b/week.php
@@ -39,7 +39,7 @@ import('ttTimeHelper');
 import('DateAndTime');
 
 // Access check.
-if (!ttAccessAllowed('data_entry') || !$user->isPluginEnabled('wv')) {
+if (!ttAccessAllowed('track_own_time') || !$user->isPluginEnabled('wv')) {
   header('Location: access_denied.php');
   exit();
 }