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());