Index: lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java =================================================================== diff -u -r9209fbea485f8b0f28a7374629d7cd3d3398cf41 -r49a1384329e9dcfd94a634df8a3e515e3d4a2e8b --- lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java (.../WorkspaceManagementService.java) (revision 9209fbea485f8b0f28a7374629d7cd3d3398cf41) +++ lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java (.../WorkspaceManagementService.java) (revision 49a1384329e9dcfd94a634df8a3e515e3d4a2e8b) @@ -466,14 +466,19 @@ return permission; } /** This method checks if the given workspaceFolder is a subFolder of the - * given rootFolder*/ + * given rootFolder. Returns false if they are the same folder. */ private boolean isSubFolder(WorkspaceFolder workspaceFolder,WorkspaceFolder rootFolder){ - if ( workspaceFolder != null ) { - WorkspaceFolder parent = null; - do { - parent = workspaceFolder.getParentWorkspaceFolder(); - } while ( parent != null && ! rootFolder.getWorkspaceFolderId().equals(parent.getWorkspaceFolderId())); - return ( parent != null ); + if ( rootFolder != null ) { + // is it the same folder? + if ( rootFolder.getWorkspaceFolderId().equals(workspaceFolder.getWorkspaceFolderId()) ) { + return false; + } + // check the parent hierarchy + WorkspaceFolder folder = workspaceFolder; + while ( folder != null && ! rootFolder.getWorkspaceFolderId().equals(folder.getWorkspaceFolderId()) ) { + folder = folder.getParentWorkspaceFolder(); + } + return ( folder != null ); } return false; @@ -1176,7 +1181,10 @@ */ if (hasWriteAccess(roles)) { WorkspaceFolder orgFolder = member.getOrganisation().getWorkspace().getRootFolder(); - folders.add(new FolderContentDTO(orgFolder,getPermissions(orgFolder,user))); + Integer permission = getPermissions(orgFolder,user); + if ( !permission.equals(WorkspaceFolder.NO_ACCESS) ) { + folders.add(new FolderContentDTO(orgFolder,permission)); + } } } } else {