Introduced audit fields for users.
authorNik Okuntseff <support@anuko.com>
Sun, 18 Mar 2018 16:23:09 +0000 (16:23 +0000)
committerNik Okuntseff <support@anuko.com>
Sun, 18 Mar 2018 16:23:09 +0000 (16:23 +0000)
WEB-INF/lib/ttTeamHelper.class.php
WEB-INF/templates/footer.tpl
dbinstall.php
mysql.sql

index bbd188f..60be9b5 100644 (file)
@@ -675,6 +675,11 @@ class ttTeamHelper {
 
     $mdb2 = getConnection();
 
+    // Mark roles deleted.
+    $sql = "update tt_roles set status = NULL where team_id = $team_id";
+    $affected = $mdb2->exec($sql);
+    if (is_a($affected, 'PEAR_Error')) return false;
+
     // Mark projects deleted.
     $sql = "update tt_projects set status = NULL where team_id = $team_id";
     $affected = $mdb2->exec($sql);
index d879dc5..d4f8bb7 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.52.4097 | 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.52.4098 | 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 2719bca..5b2f6c3 100644 (file)
@@ -805,7 +805,7 @@ if ($_POST) {
     print "Updated $users_updated users...<br>\n";
   }
 
-  if ($_POST["convert11744to11751"]) {
+  if ($_POST["convert11744to11752"]) {
     setChange("update `tt_roles` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.17.44') set rights = replace(rights, 'override_punch_mode,override_date_lock', 'override_punch_mode,override_own_punch_mode,override_date_lock')");
     setChange("UPDATE `tt_site_config` SET param_value = '1.17.48' where param_name = 'version_db' and param_value = '1.17.44'");
     setChange("update `tt_users` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.17.48') set role_id = (select id from tt_roles where team_id = 0 and rank = 512) where role = 324");
@@ -814,6 +814,15 @@ if ($_POST) {
     setChange("UPDATE `tt_site_config` SET param_value = '1.17.50' where param_name = 'version_db' and param_value = '1.17.49'");
     setChange("update `tt_roles` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.17.50') set rights = replace(rights, 'override_date_lock,swap_roles', 'override_date_lock,override_own_date_lock,swap_roles')");
     setChange("UPDATE `tt_site_config` SET param_value = '1.17.51' where param_name = 'version_db' and param_value = '1.17.50'");
+    setChange("ALTER TABLE `tt_users` ADD `created` datetime default NULL AFTER `email`");
+    setChange("ALTER TABLE `tt_users` ADD `created_ip` varchar(45) default NULL AFTER `created`");
+    setChange("ALTER TABLE `tt_users` ADD `created_by` int(11) default NULL AFTER `created_ip`");
+    setChange("ALTER TABLE `tt_users` ADD `modified` datetime default NULL AFTER `created_by`");
+    setChange("ALTER TABLE `tt_users` ADD `modified_ip` varchar(45) default NULL AFTER `modified`");
+    setChange("ALTER TABLE `tt_users` ADD `modified_by` int(11) default NULL AFTER `modified_ip`");
+    setChange("ALTER TABLE `tt_users` ADD `accessed` datetime default NULL AFTER `modified_by`");
+    setChange("ALTER TABLE `tt_users` ADD `accessed_ip` varchar(45) default NULL AFTER `accessed`");
+    setChange("UPDATE `tt_site_config` SET param_value = '1.17.52' where param_name = 'version_db' and param_value = '1.17.51'");
   }
 
   if ($_POST["cleanup"]) {
@@ -859,7 +868,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.51)</b>
+    <td width="80%"><b>Create database structure (v1.17.52)</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>
@@ -899,8 +908,8 @@ if ($_POST) {
     <td><input type="submit" name="convert11400to11744" value="Update"><br><input type="submit" name="update_role_id" value="Update role_id"></td>
   </tr>
     <tr valign="top">
-    <td>Update database structure (v1.17.44 to v1.17.51)</td>
-    <td><input type="submit" name="convert11744to11751" value="Update"></td>
+    <td>Update database structure (v1.17.44 to v1.17.52)</td>
+    <td><input type="submit" name="convert11744to11752" value="Update"></td>
   </tr>
 </table>
 
index e5a9b8e..6c2d0f5 100644 (file)
--- a/mysql.sql
+++ b/mysql.sql
@@ -14,7 +14,7 @@
 #
 CREATE TABLE `tt_teams` (
   `id` int(11) NOT NULL auto_increment,                      # team id
-  `timestamp` timestamp default CURRENT_TIMESTAMP,           # modification timestamp
+  `timestamp` timestamp default CURRENT_TIMESTAMP,           # Modification timestamp. TODO: redo all timestamps to survive beyond 2038.
   `name` varchar(80) default NULL,                           # team name
   `currency` varchar(7) default NULL,                        # team currency symbol
   `decimal_mark` char(1) NOT NULL default '.',               # separator in decimals
@@ -83,6 +83,14 @@ CREATE TABLE `tt_users` (
   `client_id` int(11) default NULL,                # client id for "client" user role
   `rate` float(6,2) NOT NULL default '0.00',       # default hourly rate
   `email` varchar(100) default NULL,               # user email
+  `created_timestamp` timestamp default NULL,      # creation timestamp
+  `created_ip` varchar(45) default NULL,           # creation ip
+  `created_by` int(11) default NULL,               # creator user_id (null for self)
+  `modified_timestamp` timestamp default NULL,     # modification timestamp
+  `modified_ip` varchar(45) default NULL,          # modification ip
+  `modified_by` int(11) default NULL,              # modifier user_id
+  `last_access_timestamp` timestamp default NULL,  # last access timestamp
+  `last_access_ip` varchar(45) default NULL,       # last access ip
   `status` tinyint(4) default 1,                   # user status
   PRIMARY KEY (`id`)
 );
@@ -426,4 +434,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.51', now()); # TODO: change when structure changes.
+INSERT INTO `tt_site_config` (`param_name`, `param_value`, `created`) VALUES ('version_db', '1.17.52', now()); # TODO: change when structure changes.