From c7485fb3c398f34117cb6c0addc54cbdf71ca1dd Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Sat, 27 Dec 2014 16:57:43 -0800 Subject: [PATCH] GUAC-962: Do not attempt to query users unless absolutely necessary. --- .../net/basic/rest/user/UserRESTService.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/user/UserRESTService.java b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/user/UserRESTService.java index 7a9f28b9b..245321e86 100644 --- a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/user/UserRESTService.java +++ b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/user/UserRESTService.java @@ -325,10 +325,18 @@ public class UserRESTService { UserContext userContext = authenticationService.getUserContext(authToken); - // Get the user - User user = userContext.getUserDirectory().get(username); - if (user == null) - throw new GuacamoleResourceNotFoundException("No such user: \"" + username + "\""); + User user; + + // If username is own username, just use self - might not have query permissions + if (userContext.self().getUsername().equals(username)) + user = userContext.self(); + + // If not self, query corresponding user from directory + else { + user = userContext.getUserDirectory().get(username); + if (user == null) + throw new GuacamoleResourceNotFoundException("No such user: \"" + username + "\""); + } return new APIPermissionSet(user.getPermissions());