From 9f4ffc38746c7d23beb7b48ba342dd0cc8e8b19a Mon Sep 17 00:00:00 2001 From: Nik Okuntseff Date: Mon, 26 Mar 2018 00:10:07 +0000 Subject: [PATCH] Improved users page a bit in accordance with user rights. --- WEB-INF/lib/ttUser.class.php | 4 +++- WEB-INF/templates/footer.tpl | 2 +- users.php | 17 +++++++++++------ 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/WEB-INF/lib/ttUser.class.php b/WEB-INF/lib/ttUser.class.php index 3461ac5b..5321e74d 100644 --- a/WEB-INF/lib/ttUser.class.php +++ b/WEB-INF/lib/ttUser.class.php @@ -251,12 +251,14 @@ 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"; diff --git a/WEB-INF/templates/footer.tpl b/WEB-INF/templates/footer.tpl index 658d120a..e9e28a35 100644 --- a/WEB-INF/templates/footer.tpl +++ b/WEB-INF/templates/footer.tpl @@ -12,7 +12,7 @@
-
 Anuko Time Tracker 1.17.72.4168 | Copyright © Anuko | +  Anuko Time Tracker 1.17.72.4169 | Copyright © Anuko | {$i18n.footer.credits} | {$i18n.footer.license} | {$i18n.footer.improve} diff --git a/users.php b/users.php index 35fd4168..f5335455 100644 --- a/users.php +++ b/users.php @@ -38,11 +38,17 @@ if (!(ttAccessAllowed('view_users') || ttAccessAllowed('manage_users'))) { exit(); } -// Get users. -$active_users = ttTeamHelper::getActiveUsers(array('getAllFields'=>true)); -if($user->canManageTeam()) { - $can_delete_manager = (1 == count($active_users)); - $inactive_users = ttTeamHelper::getInactiveUsers($user->team_id, true); +// Prepare a list of active users. +if ($user->can('view_users')) + $options = array('status'=>ACTIVE,'include_clients'=>true,'include_login'=>true,'include_role'=>true); +else /* if ($user->can('manage_users')) */ + $options = array('status'=>ACTIVE,'max_rank'=>$user->rank-1,'include_clients'=>true,'include_self'=>true,'self_first'=>true,'include_login'=>true,'include_role'=>true); +$active_users = $user->getUsers($options); + +// Prepare a list of inactive users. +if($user->can('manage_users')) { + $options = array('status'=>INACTIVE,'max_rank'=>$user->rank-1,'include_clients'=>true,'include_login'=>true,'include_role'=>true); + $inactive_users = $user->getUsers($options); } // Check if the team is set to show indicators for uncompleted time entries. @@ -55,7 +61,6 @@ if ($user->uncompleted_indicators) { $smarty->assign('active_users', $active_users); $smarty->assign('inactive_users', $inactive_users); -$smarty->assign('can_delete_manager', $can_delete_manager); $smarty->assign('title', $i18n->get('title.users')); $smarty->assign('content_page_name', 'users.tpl'); $smarty->display('index.tpl'); -- 2.20.1