From dced95f9a921ba63209420c95115ce6fe908df58 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Sun, 10 Feb 2013 03:47:28 -0800 Subject: [PATCH] #268: Return permissions of current user by default. --- .../net/basic/crud/permissions/List.java | 25 +++++++++++-------- guacamole/src/main/webapp/scripts/service.js | 16 +++++++++--- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/permissions/List.java b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/permissions/List.java index cce46b2d7..41180fcc0 100644 --- a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/permissions/List.java +++ b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/permissions/List.java @@ -104,18 +104,23 @@ public class List extends AuthenticatingHttpServlet { // Write actual XML try { + User user; + // Get username String username = request.getParameter("user"); - if (username == null) - throw new ServletException("No user specified."); + if (username != null) { - // Get user directory - Directory users = context.getUserDirectory(); - - // Get specific user - User user = users.get(username); - if (user == null) - throw new GuacamoleSecurityException("No such user."); + // Get user directory + Directory users = context.getUserDirectory(); + + // Get specific user + user = users.get(username); + if (user == null) + throw new GuacamoleSecurityException("No such user."); + + } + else + user = context.self(); // Write XML content type response.setHeader("Content-Type", "text/xml"); @@ -126,7 +131,7 @@ public class List extends AuthenticatingHttpServlet { // Begin document xml.writeStartDocument(); xml.writeStartElement("permissions"); - xml.writeAttribute("user", username); + xml.writeAttribute("user", user.getUsername()); // For each entry, write corresponding user element for (Permission permission : user.getPermissions()) { diff --git a/guacamole/src/main/webapp/scripts/service.js b/guacamole/src/main/webapp/scripts/service.js index 0059bf173..990f14c94 100644 --- a/guacamole/src/main/webapp/scripts/service.js +++ b/guacamole/src/main/webapp/scripts/service.js @@ -421,13 +421,21 @@ GuacamoleService.Permissions = { "list" : function(username, parameters) { // Construct request URL - var list_url = "permissions?user=" + encodeURIComponent(username); - if (parameters) list_url += "&" + parameters; + var list_url = "permissions"; + if (parameters) list_url += "?" + parameters; + + // Init POST data + var data; + if (username) + data = "user=" + encodeURIComponent(username); + else + data = null; // Get permission list var xhr = new XMLHttpRequest(); - xhr.open("GET", list_url, false); - xhr.send(null); + xhr.open("POST", list_url, false); + xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); + xhr.send(data); // If fail, throw error if (xhr.status != 200)