Fixed getUser to include client_id.
[timetracker.git] / WEB-INF / lib / ttUser.class.php
index 7afc9c1..36d7136 100644 (file)
@@ -54,6 +54,7 @@ class ttUser {
   var $uncompleted_indicators = 0; // Uncompleted time entry indicators (show nowhere or on users page).
   var $bcc_email = null;        // Bcc email.
   var $allow_ip = null;         // Specification from where user is allowed access.
+  var $password_complexity = null; // Password complexity example.
   var $currency = null;         // Currency.
   var $plugins = null;          // Comma-separated list of enabled plugins.
   var $config = null;           // Comma-separated list of miscellaneous config options.
@@ -76,7 +77,7 @@ class ttUser {
     $sql = "SELECT u.id, u.login, u.name, u.group_id, u.role_id, r.rank, r.name as role_name, r.rights, u.client_id, u.email, g.name as group_name,
       g.currency, g.lang, g.decimal_mark, g.date_format, g.time_format, g.week_start,
       g.tracking_mode, g.project_required, g.task_required, g.record_type,
-      g.bcc_email, g.allow_ip, g.plugins, g.config, g.lock_spec, g.workday_minutes, g.custom_logo
+      g.bcc_email, g.allow_ip, g.password_complexity, g.plugins, g.config, g.lock_spec, g.workday_minutes, g.custom_logo
       FROM tt_users u LEFT JOIN tt_groups g ON (u.group_id = g.id) LEFT JOIN tt_roles r on (r.id = u.role_id) WHERE ";
     if ($id)
       $sql .= "u.id = $id";
@@ -113,6 +114,7 @@ class ttUser {
       $this->record_type = $val['record_type'];
       $this->bcc_email = $val['bcc_email'];
       $this->allow_ip = $val['allow_ip'];
+      $this->password_complexity = $val['password_complexity'];
       $this->group = $val['group_name'];
       $this->currency = $val['currency'];
       $this->plugins = $val['plugins'];
@@ -148,25 +150,6 @@ class ttUser {
     return in_array($do_something, $this->rights);
   }
 
-  // isAdmin - determines whether current user is admin.
-  function isAdmin() {
-    return $this->can('administer_site');
-  }
-
-  // isManager - determines whether current user is group manager.
-  // This is a legacy function that we are getting rid of by replacing with rights check.
-  function isManager() {
-    return $this->can('export_data'); // By default this is assigned to managers but not co-managers.
-                                      // Which is sufficient for now until we refactor all calls
-                                      // 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;
@@ -370,7 +353,7 @@ class ttUser {
 
     $mdb2 = getConnection();
 
-    $sql =  "select u.id, u.name, u.login, u.role_id, u.status, u.rate, u.email from tt_users u".
+    $sql =  "select u.id, u.name, u.login, u.role_id, u.client_id, u.status, u.rate, u.email from tt_users u".
             " left join tt_roles r on (u.role_id = r.id)".
             " where u.id = $user_id and u.group_id = $this->group_id and u.status is not null".
             " and (r.rank < $this->rank or (r.rank = $this->rank and u.id = $this->id))"; // Users with lesser roles or self.
@@ -454,6 +437,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)
   {