diff --git a/src/app/user/controllers/UserController.php b/src/app/user/controllers/UserController.php
index 0ebcc0874c5a6eadb8a9704c108706ab1ed701b3..3cae1c2259c90d7f90d9a0711ab19bd98b226956 100755
--- a/src/app/user/controllers/UserController.php
+++ b/src/app/user/controllers/UserController.php
@@ -106,9 +106,7 @@ class UserController
             return $response->withStatus(400)->withJson(['errors' => 'Route id is not an integer']);
         }
 
-        $queryParams = $request->getQueryParams();
-        $summaryOnly = ($queryParams['mode'] ?? null) == 'summary';
-        if (!$summaryOnly && UserController::hasRightByUserId(['activeUserId' => $GLOBALS['id'], 'targetUserId' => $args['id']])) {
+        if ($GLOBALS['id'] == $args['id'] || PrivilegeController::hasPrivilege(['userId' => $GLOBALS['id'], 'privilege' => 'manage_users'])) {
             $user = UserController::getUserInformationsById(['id' => $args['id']]);
         } else {
             $user = UserModel::getById(['select' => ['id', 'firstname', 'lastname', 'email', 'phone', 'substitute'], 'id' => $args['id']]);
@@ -132,7 +130,7 @@ class UserController
         if (!empty($groupsIds)) {
             $groups = GroupModel::get(['select' => ['label', 'id'], 'where' => ['id in (?)'], 'data' => [$groupsIds]]);
             $user['groups'] = $groups;
-        } elseif (!$actuallyAlone && !$summaryOnly) {
+        } elseif (!$actuallyAlone) {
             return $response->withStatus(403)->withJson(['errors' => 'User out of perimeter']);
         }