Improved users page a bit in accordance with user rights.
[timetracker.git] / users.php
index 35fd416..f533545 100644 (file)
--- 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');