From 2a71da382759aa8018b2400f9f75a22f7922ab73 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Wed, 13 Feb 2013 15:32:57 -0800 Subject: [PATCH] Ticket #268: Implement connection access manipulation, fix user update (reinstate use of DummyUser). --- .../net/basic/crud/users/Update.java | 3 ++- guacamole/src/main/webapp/scripts/admin-ui.js | 25 ++++++++++++++----- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/users/Update.java b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/users/Update.java index 08b10727e..87b602aa2 100644 --- a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/users/Update.java +++ b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/users/Update.java @@ -161,7 +161,8 @@ public class Update extends AuthenticatingHttpServlet { context.getUserDirectory(); // Get user data, setting password if given - User user = directory.get(username); + User user = new DummyUser(); + user.setUsername(username); if (password != null) user.setPassword(password); diff --git a/guacamole/src/main/webapp/scripts/admin-ui.js b/guacamole/src/main/webapp/scripts/admin-ui.js index a7554c10c..1132b5567 100644 --- a/guacamole/src/main/webapp/scripts/admin-ui.js +++ b/guacamole/src/main/webapp/scripts/admin-ui.js @@ -532,7 +532,8 @@ GuacAdmin.reset = function() { }; // If readable connections exist, list them - if (GuacAdmin.hasEntry(permissions.read_connection)) { + var selected_connections = {}; + if (GuacAdmin.hasEntry(permissions.administer_connection)) { // Add fields for per-connection checkboxes var connections_header = GuacUI.createChildElement(sections, "dt"); @@ -541,13 +542,28 @@ GuacAdmin.reset = function() { GuacUI.createChildElement(sections, "dd"), "div", "list"); - for (var conn in permissions.read_connection) { + for (var conn in permissions.administer_connection) { var connection = GuacUI.createChildElement(connections, "div", "connection"); var connection_field = GuacUI.createChildElement(connection, "input"); var connection_name = GuacUI.createChildElement(connection, "span", "name"); connection_field.setAttribute("type", "checkbox"); + connection_field.setAttribute("value", conn); + + // Check checkbox if connection readable by selected user + if (conn in user_perms.read_connection) { + selected_connections[conn] = true; + connection_field.checked = true; + } + + // Update selected connections when changed + connection_field.onclick = connection_field.onchange = function() { + if (this.checked) + selected_connections[this.value] = true; + else if (selected_connections[this.value]) + delete selected_connections[this.value]; + }; connection_name.textContent = conn; @@ -586,10 +602,7 @@ GuacAdmin.reset = function() { password = null; // Set user permissions - user_perms.read_connection = {}; - var connections = undefined; /* STUB (selected connections) */ - for (var i=0; i