From 33fbc857f80873a78d622fb7d1cc6988010633d8 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Mon, 4 Mar 2013 00:19:45 -0800 Subject: [PATCH] Connection parameters should be listed if admin permission present. Connection section of user profile should be shown if admin permission present. --- .../guacamole/net/basic/crud/connections/List.java | 8 +++++++- guacamole/src/main/webapp/scripts/admin-ui.js | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/connections/List.java b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/connections/List.java index 9f6f47df3..4decb4a49 100644 --- a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/connections/List.java +++ b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/connections/List.java @@ -35,6 +35,7 @@ import net.sourceforge.guacamole.net.auth.UserContext; import net.sourceforge.guacamole.net.auth.permission.ConnectionPermission; import net.sourceforge.guacamole.net.auth.permission.ObjectPermission; import net.sourceforge.guacamole.net.auth.permission.Permission; +import net.sourceforge.guacamole.net.auth.permission.SystemPermission; import net.sourceforge.guacamole.net.basic.AuthenticatingHttpServlet; import net.sourceforge.guacamole.protocol.GuacamoleConfiguration; @@ -95,6 +96,10 @@ public class List extends AuthenticatingHttpServlet { // Get connection directory Directory directory = context.getConnectionDirectory(); + // Sys-admin permission + Permission systemPermission = + new SystemPermission(SystemPermission.Type.ADMINISTER); + // Write actual XML try { @@ -121,7 +126,8 @@ public class List extends AuthenticatingHttpServlet { connection.getConfiguration().getProtocol()); // If update permission available, include parameters - if (hasConfigPermission(self, ObjectPermission.Type.UPDATE, + if (self.hasPermission(systemPermission) || + hasConfigPermission(self, ObjectPermission.Type.UPDATE, identifier)) { // As update permission is present, also list parameters diff --git a/guacamole/src/main/webapp/scripts/admin-ui.js b/guacamole/src/main/webapp/scripts/admin-ui.js index b0da514a0..d6f19b1cf 100644 --- a/guacamole/src/main/webapp/scripts/admin-ui.js +++ b/guacamole/src/main/webapp/scripts/admin-ui.js @@ -471,7 +471,8 @@ GuacAdmin.addUser = function(name) { } // If readable connections exist, list them - if (GuacAdmin.hasEntry(GuacAdmin.cached_permissions.administer_connection)) { + if (GuacAdmin.cached_permissions.administer || + GuacAdmin.hasEntry(GuacAdmin.cached_permissions.administer_connection)) { // Add fields for per-connection checkboxes var connections_header = GuacUI.createChildElement(sections, "dt");