X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=WEB-INF%2Flib%2FttUser.class.php;h=ad5c04101a3182ababe342735897ad79d7000d23;hb=7961e2909a8c8c456c1b0d6bee2944cabde592c0;hp=469345b75c2c7621e0a8f900f8801df4363bc360;hpb=5e861d92d6d758ba4888e35109cc6df4ab5e2df1;p=timetracker.git diff --git a/WEB-INF/lib/ttUser.class.php b/WEB-INF/lib/ttUser.class.php index 469345b7..ad5c0410 100644 --- a/WEB-INF/lib/ttUser.class.php +++ b/WEB-INF/lib/ttUser.class.php @@ -27,6 +27,7 @@ // +----------------------------------------------------------------------+ import('ttConfigHelper'); +import('ttGroupHelper'); class ttUser { var $login = null; // User login. @@ -192,10 +193,11 @@ class ttUser { $result = array(); $mdb2 = getConnection(); + $group_id = $this->behalf_group_id ? $this->behalf_group_id : $this->group_id; // Do a query with inner join to get assigned projects. $sql = "select p.id, p.name, p.description, p.tasks, upb.rate from tt_projects p inner join tt_user_project_binds upb on (upb.user_id = ".$this->getActiveUser()." and upb.project_id = p.id and upb.status = 1) - where p.group_id = $this->group_id and p.status = 1 order by p.name"; + where p.group_id = $group_id and p.status = 1 order by p.name"; $res = $mdb2->query($sql); if (!is_a($res, 'PEAR_Error')) { while ($val = $res->fetchRow()) { @@ -378,14 +380,14 @@ class ttUser { if ($selected_group_id != $this->group_id) { // We are in one of subgroups, and a parent exists. // Get parent group info. - $sql = "select parent_id from tt_groups where org_id = $this->org_id and id = $selected_group_id"; + $sql = "select parent_id from tt_groups where org_id = $this->org_id and id = $selected_group_id and status = 1"; $res = $mdb2->query($sql); if (!is_a($res, 'PEAR_Error')) { $val = $res->fetchRow(); $parent_id = $val['parent_id']; if ($parent_id) { // Get parent group name. - $sql = "select name from tt_groups where org_id = $this->org_id and id = $parent_id"; + $sql = "select name from tt_groups where org_id = $this->org_id and id = $parent_id and status = 1"; $res = $mdb2->query($sql); if (!is_a($res, 'PEAR_Error')) { $val = $res->fetchRow(); @@ -399,11 +401,29 @@ class ttUser { $groups[] = array('id'=>$selected_group_id,'name'=>$selected_group_name); // Add subgroups. - $sql = "select id, name from tt_groups where org_id = $this->org_id and parent_id = $selected_group_id"; + $sql = "select id, name from tt_groups where org_id = $this->org_id and parent_id = $selected_group_id and status = 1"; + //die($sql); + $res = $mdb2->query($sql); + if (!is_a($res, 'PEAR_Error')) { + while ($val = $res->fetchRow()) { + $groups[] = $val; + } + } + return $groups; + } + + // getSubgroups obtains a list of immediate subgroups. + function getSubgroups($group_id = null) { + $mdb2 = getConnection(); + + if (!$group_id) $group_id = $this->getActiveGroup(); + + $sql = "select id, name, description from tt_groups where org_id = $this->org_id". + " and parent_id = $group_id and status is not null"; $res = $mdb2->query($sql); if (!is_a($res, 'PEAR_Error')) { while ($val = $res->fetchRow()) { - $groups[] = array('id'=>$val['id'],'name'=>$val['name']); + $groups[] = $val; } } return $groups; @@ -584,6 +604,14 @@ class ttUser { return true; } + // isGroupValid determines if a group is valid for user. + function isGroupValid($group_id) { + if ($group_id == $this->group_id) + return true; + else + return $this->isSubgroupValid($group_id); + } + // isSubgroupValid determines if a subgroup is valid for user. // A subgroup is valid if: // - user can manage_subgroups;