]> wagnertech.de Git - timetracker.git/blobdiff - WEB-INF/lib/ttUser.class.php
Made group name read-only for users without manage_advanced_settings right.
[timetracker.git] / WEB-INF / lib / ttUser.class.php
index 2781ea6f2c09afd087f00bd396ba2dac35386362..e3de5b4cacce2fc6b1adfcc1672629926efd56c4 100644 (file)
@@ -205,6 +205,64 @@ class ttUser {
     return $result;
   }
 
+  // getAssignedTasks - returns an array of assigned tasks.
+  function getAssignedTasks()
+  {
+    // Start with projects;
+    $projects = $this->getAssignedProjects();
+    if (!$projects) return false;
+
+    // Build an array of task ids.
+    $task_ids = array();
+    foreach($projects as $project) {
+      $one_project_tasks = $project['tasks'] ? explode(',', $project['tasks']) : array();
+      $task_ids = array_unique(array_merge($task_ids, $one_project_tasks));
+    }
+    if (!$task_ids) return false;
+
+    // Get task descriptions.
+    $result = array();
+    $mdb2 = getConnection();
+    $tasks = implode(',', $task_ids); // This is a comma-separated list of task ids.
+
+    $sql = "select id, name, description from tt_tasks".
+      " where group_id = $this->group_id and status = 1 and id in ($tasks) order by name";
+    $res = $mdb2->query($sql);
+    if (!is_a($res, 'PEAR_Error')) {
+      while ($val = $res->fetchRow()) {
+        $result[] = $val;
+      }
+    }
+    return $result;
+  }
+
+  // getAssignedClients - returns an array of clients assigned to own projects.
+  function getAssignedClients()
+  {
+    // Start with projects;
+    $projects = $this->getAssignedProjects();
+    if (!$projects) return false;
+    $assigned_project_ids = array();
+    foreach($projects as $project) {
+      $assigned_project_ids[] = $project['id'];
+    }
+
+    $mdb2 = getConnection();
+
+    // Get active clients for group.
+    $clients = array();
+    $sql = "select id, name, address, projects from tt_clients where group_id = $this->group_id and status = 1";
+    $res = $mdb2->query($sql);
+    if (!is_a($res, 'PEAR_Error')) {
+      while ($val = $res->fetchRow()) {
+        $client_project_ids = $val['projects'] ? explode(',', $val['projects']) : array();
+        if (array_intersect($assigned_project_ids, $client_project_ids))
+          $clients[] = $val; // Add client if one of user projects is a client project, too.
+      }
+    }
+    return $clients;
+  }
+
   // isDateLocked checks whether a specifc date is locked for modifications.
   function isDateLocked($date)
   {