Index: lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java,v diff -u -r1.20 -r1.21 --- lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java 11 Apr 2006 12:00:34 -0000 1.20 +++ lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java 11 Apr 2006 12:53:10 -0000 1.21 @@ -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 {