#268: Return permissions of current user by default.

This commit is contained in:
Michael Jumper
2013-02-10 03:47:28 -08:00
parent ba200cadf9
commit dced95f9a9
2 changed files with 27 additions and 14 deletions

View File

@@ -104,19 +104,24 @@ 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<String, User> users = context.getUserDirectory();
// Get specific user
User user = users.get(username);
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()) {

View File

@@ -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)