X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=WEB-INF%2Flib%2FttUser.class.php;h=f9edc8cc7a71ebd17a0d02568ef7ee2a51db759c;hb=2f5b2dc68a73954b497c7aaa3223be7f3db1d117;hp=3461ac5bfa4fd6418093ce59966fdad28a892683;hpb=5f1b7a5bed3563565e28a5bf851298d3ed7df8c7;p=timetracker.git diff --git a/WEB-INF/lib/ttUser.class.php b/WEB-INF/lib/ttUser.class.php index 3461ac5b..f9edc8cc 100644 --- a/WEB-INF/lib/ttUser.class.php +++ b/WEB-INF/lib/ttUser.class.php @@ -251,23 +251,30 @@ class ttUser { $includeSelf = isset($options['include_self']); $select_part = 'select u.id, u.name'; + if (isset($options['include_login'])) $select_part .= ', u.login'; if (!isset($options['include_clients'])) $select_part .= ', r.rights'; + if (isset($options['include_role'])) $select_part .= ', r.name as role_name, r.rank'; $from_part = ' from tt_users u'; $left_joins = null; - if (isset($options['max_rank']) || $skipClients) + if (isset($options['max_rank']) || $skipClients || isset($options['include_role'])) $left_joins .= ' left join tt_roles r on (u.role_id = r.id)'; $where_part = " where u.team_id = $this->team_id"; - if (isset($options['status'])) $where_part .= ' and u.status = '.(int)$options['status']; + if (isset($options['status'])) + $where_part .= ' and u.status = '.(int)$options['status']; + else + $where_part .= ' and u.status is not null'; if ($includeSelf) { $where_part .= " and (u.id = $this->id || r.rank <= ".(int)$options['max_rank'].')'; } else { if (isset($options['max_rank'])) $where_part .= ' and r.rank <= '.(int)$options['max_rank']; } - $sql = $select_part.$from_part.$left_joins.$where_part; + $order_part = " order by upper(u.name)"; + + $sql = $select_part.$from_part.$left_joins.$where_part.$order_part; $res = $mdb2->query($sql); $user_list = array(); if (is_a($res, 'PEAR_Error')) @@ -296,6 +303,25 @@ class ttUser { return $user_list; } + // getUser function is used to manage users in group and returns user details. + // At the moment, the function is used for user edits and deletes. + function getUser($user_id) { + if (!$this->can('manage_users')) return false; + + $mdb2 = getConnection(); + + $sql = "select u.id, u.name, u.login, u.role_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.team_id = $this->team_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. + $res = $mdb2->query($sql); + if (!is_a($res, 'PEAR_Error')) { + $val = $res->fetchRow(); + return $val; + } + return false; + } + // checkBehalfId checks whether behalf_id is appropriate. // On behalf user must be active and have lower rank. function checkBehalfId() {