Refactoring. Got rid of isCoManager() calls.
authorNik Okuntseff <support@anuko.com>
Wed, 11 Apr 2018 19:03:46 +0000 (19:03 +0000)
committerNik Okuntseff <support@anuko.com>
Wed, 11 Apr 2018 19:03:46 +0000 (19:03 +0000)
WEB-INF/lib/ttUser.class.php
WEB-INF/lib/ttUserHelper.class.php
WEB-INF/templates/footer.tpl
mobile/user_delete.php
user_delete.php

index 2560417..bce21e0 100644 (file)
@@ -158,12 +158,6 @@ class ttUser {
                                       // to this function and then remove it.
   }
 
-  // isCoManager - determines whether current user is group comanager.
-  // This is a legacy function that we are getting rid of by replacing with rights check.
-  function isCoManager() {
-    return ($this->can('manage_users') && !$this->can('export_data'));
-  }
-
   // isClient - determines whether current user is a client.
   function isClient() {
     return $this->is_client;
@@ -451,6 +445,38 @@ class ttUser {
     return true;
   }
 
+  // markUserDeleted marks a user in group as deleted.
+  function markUserDeleted($user_id) {
+    if (!$this->can('manage_users') || $this->id == $user_id)
+      return false;
+
+    // Make sure we operate on a legit user.
+    $user_details = $this->getUser($user_id);
+    if (!$user_details) return false;
+
+    $mdb2 = getConnection();
+
+    // Mark user to project binds as deleted.
+    $sql = "update tt_user_project_binds set status = NULL where user_id = $user_id";
+    $affected = $mdb2->exec($sql);
+    if (is_a($affected, 'PEAR_Error'))
+      return false;
+
+    // Mark user favorite reports as deleted.
+    $sql = "update tt_fav_reports set status = NULL where user_id = $user_id";
+    $affected = $mdb2->exec($sql);
+    if (is_a($affected, 'PEAR_Error'))
+      return false;
+
+    // Mark user as deleted.
+    $sql = "update tt_users set status = NULL where id = $user_id and group_id = ".$this->group_id;
+    $affected = $mdb2->exec($sql);
+    if (is_a($affected, 'PEAR_Error'))
+      return false;
+
+    return true;
+  }
+
   // enablePlugin either enables or disables a specific plugin for group.
   function enablePlugin($plugin, $enable = true)
   {
index 848c953..521bc8b 100644 (file)
@@ -235,98 +235,6 @@ class ttUserHelper {
     return true;
   }
 
-  // markDeleted - marks user and its associated things as deleted.
-  static function markDeleted($user_id) {
-    $mdb2 = getConnection();
-    global $user;
-
-    // Preliminary checks. Only managers and co-managers can do this.
-    if (!$user->canManageTeam())
-      return false;
-
-    // Tho logic is different depending on who is doing the operation.
-    // Co-manager - mark user deleted.
-    // Manager - mark user deleted. If manager is the only account in group, mark group items deleted.
-
-    // Co-manager part.
-    if ($user->isCoManager()) {
-      // Mark user binds as deleted.
-      $sql = "update tt_user_project_binds set status = NULL where user_id = $user_id";
-      $affected = $mdb2->exec($sql);
-      if (is_a($affected, 'PEAR_Error'))
-        return false;
-
-      // Mark favorite reports as deleted.
-      $sql = "update tt_fav_reports set status = NULL where user_id = $user_id";
-      $affected = $mdb2->exec($sql);
-      if (is_a($affected, 'PEAR_Error'))
-        return false;
-
-      // Mark user as deleted.
-      $sql = "update tt_users set status = NULL where id = $user_id and group_id = ".$user->group_id;
-      $affected = $mdb2->exec($sql);
-      if (is_a($affected, 'PEAR_Error'))
-        return false;
-
-    } elseif ($user->isManager()) {
-      $user_count = ttTeamHelper::getUserCount($user->group_id);
-
-      // Marking deleted a manager with active users is not allowed.
-       if (($user_id == $user->id) && ($user_count > 1))
-        return false;
-
-      if (1 == $user_count) {
-        // Mark tasks deleted.
-        if (!ttTeamHelper::markTasksDeleted($user->group_id))
-          return false;
-
-        // Mark projects deleted.
-        $sql = "update tt_projects set status = NULL where group_id = $user->group_id";
-        $affected = $mdb2->exec($sql);
-        if (is_a($affected, 'PEAR_Error'))
-          return false;
-
-        // Mark clients deleted.
-        $sql = "update tt_clients set status = NULL where group_id = $user->group_id";
-        $affected = $mdb2->exec($sql);
-        if (is_a($affected, 'PEAR_Error'))
-          return false;
-
-        // Mark custom fields deleted.
-        $sql = "update tt_custom_fields set status = NULL where group_id = $user->group_id";
-        $affected = $mdb2->exec($sql);
-        if (is_a($affected, 'PEAR_Error'))
-          return false;
-        // Mark group deleted.
-        $sql = "update tt_groups set status = NULL where id = $user->group_id";
-        $affected = $mdb2->exec($sql);
-        if (is_a($affected, 'PEAR_Error'))
-          return false;
-      }
-
-      // Mark user binds as deleted.
-      $sql = "update tt_user_project_binds set status = NULL where user_id = $user_id";
-      $affected = $mdb2->exec($sql);
-      if (is_a($affected, 'PEAR_Error'))
-        return false;
-
-      // Mark favorite reports as deleted.
-      $sql = "update tt_fav_reports set status = NULL where user_id = $user_id";
-      $affected = $mdb2->exec($sql);
-      if (is_a($affected, 'PEAR_Error'))
-        return false;
-
-      // Mark user as deleted.
-      $sql = "update tt_users set status = NULL where id = $user_id and group_id = ".$user->group_id;
-      $affected = $mdb2->exec($sql);
-      if (is_a($affected, 'PEAR_Error'))
-        return false;
-    }
-
-    return true;
-  }
-
   // The delete function permanently deletes a user and all associated data.
   static function delete($user_id) {
     $mdb2 = getConnection();
index 05db3fa..1a94729 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.88.4254 | 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.88.4255 | 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 b5c8dae..ac6c7c8 100644 (file)
@@ -28,7 +28,7 @@
 
 require_once('../initialize.php');
 import('form.Form');
-import('ttUserHelper');
+import('ttUser');
 
 // Access checks.
 if (!ttAccessAllowed('manage_users')) {
@@ -53,7 +53,7 @@ $form->addInput(array('type'=>'submit','name'=>'btn_cancel','value'=>$i18n->get(
 
 if ($request->isPost()) {
   if ($request->getParameter('btn_delete')) {
-    if (ttUserHelper::markDeleted($user_id)) {
+    if ($user->markUserDeleted($user_id)) {
       // If we deleted the "on behalf" user reset its info in session.
       if ($user_id == $user->behalf_id) {
         unset($_SESSION['behalf_id']);
index 647f217..13b5ed0 100644 (file)
@@ -28,7 +28,7 @@
 
 require_once('initialize.php');
 import('form.Form');
-import('ttUserHelper');
+import('ttUser');
 
 // Access checks.
 if (!ttAccessAllowed('manage_users')) {
@@ -53,7 +53,7 @@ $form->addInput(array('type'=>'submit','name'=>'btn_cancel','value'=>$i18n->get(
 
 if ($request->isPost()) {
   if ($request->getParameter('btn_delete')) {
-    if (ttUserHelper::markDeleted($user_id)) {
+    if ($user->markUserDeleted($user_id)) {
       // If we deleted the "on behalf" user reset its info in session.
       if ($user_id == $user->behalf_id) {
         unset($_SESSION['behalf_id']);