diff --git a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connection/ConnectionRESTService.java b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connection/ConnectionRESTService.java index 8930261a3..6a0e70d96 100644 --- a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connection/ConnectionRESTService.java +++ b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connection/ConnectionRESTService.java @@ -102,15 +102,8 @@ public class ConnectionRESTService { Directory connectionDirectory = parentConnectionGroup.getConnectionDirectory(); - // Get the list of connection names - List connections = new ArrayList(); - Iterable identifiers = connectionDirectory.getIdentifiers(); - - // Get the connection for each name - for(String identifier : identifiers) - connections.add(connectionDirectory.get(identifier)); - - return connectionService.convertConnectionList(connections); + // Return the converted connection directory + return connectionService.convertConnectionList(connectionDirectory); } catch(GuacamoleSecurityException e) { throw new HTTPException(Status.UNAUTHORIZED, e.getMessage() != null ? e.getMessage() : "Permission denied."); } catch(GuacamoleClientException e) { diff --git a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connection/ConnectionService.java b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connection/ConnectionService.java index 7e26414f1..daa5c3012 100644 --- a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connection/ConnectionService.java +++ b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connection/ConnectionService.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import org.glyptodon.guacamole.GuacamoleException; import org.glyptodon.guacamole.net.auth.Connection; +import org.glyptodon.guacamole.net.auth.Directory; /* * Guacamole - Clientless Remote Desktop @@ -37,14 +38,14 @@ public class ConnectionService { * @param connections The Connection to convert for REST endpoint use. * @return A List of APIConnection objects for use with the REST endpoint. * @throws GuacamoleException If an error occurs while converting the - * connections. + * connection directory. */ - public List convertConnectionList(Iterable connections) + public List convertConnectionList(Directory connectionDirectory) throws GuacamoleException { List restConnections = new ArrayList(); - for(Connection connection : connections) { - restConnections.add(new APIConnection(connection)); + for(String connectionID : connectionDirectory.getIdentifiers()) { + restConnections.add(new APIConnection(connectionDirectory.get(connectionID))); } return restConnections; diff --git a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connectiongroup/ConnectionGroupRESTService.java b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connectiongroup/ConnectionGroupRESTService.java index 6798fa332..5dede8ac9 100644 --- a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connectiongroup/ConnectionGroupRESTService.java +++ b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connectiongroup/ConnectionGroupRESTService.java @@ -101,15 +101,8 @@ public class ConnectionGroupRESTService { Directory connectionGroupDirectory = parentConnectionGroup.getConnectionGroupDirectory(); - // Get the list of connection group names - List connectionGroups = new ArrayList(); - Iterable identifiers = connectionGroupDirectory.getIdentifiers(); - - // Get the connection group for each name - for(String identifier : identifiers) - connectionGroups.add(connectionGroupDirectory.get(identifier)); - - return connectionGroupService.convertConnectionGroupList(connectionGroups); + // return the converted connection group list + return connectionGroupService.convertConnectionGroupList(connectionGroupDirectory); } catch(GuacamoleSecurityException e) { throw new HTTPException(Status.UNAUTHORIZED, e.getMessage() != null ? e.getMessage() : "Permission denied."); } catch(GuacamoleClientException e) { @@ -146,6 +139,7 @@ public class ConnectionGroupRESTService { if(connectionGroup == null) throw new HTTPException(Status.NOT_FOUND, "No ConnectionGroup found with the provided ID."); + // Return the connectiion group return new APIConnectionGroup(connectionGroup); } catch(GuacamoleSecurityException e) { throw new HTTPException(Status.UNAUTHORIZED, e.getMessage() != null ? e.getMessage() : "Permission denied."); @@ -311,7 +305,7 @@ public class ConnectionGroupRESTService { if(parentConnectionGroup == null) throw new HTTPException(Status.NOT_FOUND, "No ConnectionGroup found with the provided parentID."); - // Move the connection + // Move the connection group connectionGroupDirectory.move(connectionGroupID, parentConnectionGroup.getConnectionGroupDirectory()); } catch(GuacamoleSecurityException e) { throw new HTTPException(Status.UNAUTHORIZED, e.getMessage() != null ? e.getMessage() : "Permission denied."); diff --git a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connectiongroup/ConnectionGroupService.java b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connectiongroup/ConnectionGroupService.java index 402647a84..53ab042a4 100644 --- a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connectiongroup/ConnectionGroupService.java +++ b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connectiongroup/ConnectionGroupService.java @@ -2,7 +2,9 @@ package org.glyptodon.guacamole.net.basic.rest.connectiongroup; import java.util.ArrayList; import java.util.List; +import org.glyptodon.guacamole.GuacamoleException; import org.glyptodon.guacamole.net.auth.ConnectionGroup; +import org.glyptodon.guacamole.net.auth.Directory; /* * Guacamole - Clientless Remote Desktop @@ -35,13 +37,15 @@ public class ConnectionGroupService { * * @param connectionGroups The ConnectionGroup to convert for REST endpoint use. * @return A List of APIConnectionGroup objects for use with the REST endpoint. + * @throws GuacamoleException If an error occurs while converting the + * connection group directory. */ public List convertConnectionGroupList( - Iterable connectionGroups) { + Directory connectionGroupDirectory) throws GuacamoleException { List restConnectionGroups = new ArrayList(); - for(ConnectionGroup connectionGroup : connectionGroups) { - restConnectionGroups.add(new APIConnectionGroup(connectionGroup)); + for(String connectionGroupID : connectionGroupDirectory.getIdentifiers()) { + restConnectionGroups.add(new APIConnectionGroup(connectionGroupDirectory.get(connectionGroupID))); } return restConnectionGroups; diff --git a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/permission/PermissionService.java b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/permission/PermissionService.java index 32314b84d..85c265054 100644 --- a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/permission/PermissionService.java +++ b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/permission/PermissionService.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; -import org.glyptodon.guacamole.GuacamoleException; import org.glyptodon.guacamole.net.auth.permission.Permission; /*