From 8e471ce50affc72069d68689e2d60a240610ec11 Mon Sep 17 00:00:00 2001 From: Natasa Kapravelou Date: Thu, 23 Sep 2010 20:21:09 +0300 Subject: [PATCH] Navigation through public folder url with no special characters in their folder names fixed. 1. Todo: Treat the special characters 2. For every public folder all containing sub-folder should also be public. --- src/gr/ebs/gss/server/rest/FilesHandler.java | 84 +++++++++++++++----------- 1 file changed, 50 insertions(+), 34 deletions(-) diff --git a/src/gr/ebs/gss/server/rest/FilesHandler.java b/src/gr/ebs/gss/server/rest/FilesHandler.java index aa9de79..b5e96e6 100644 --- a/src/gr/ebs/gss/server/rest/FilesHandler.java +++ b/src/gr/ebs/gss/server/rest/FilesHandler.java @@ -195,7 +195,7 @@ public class FilesHandler extends RequestHandler { } String progress = req.getParameter(PROGRESS_PARAMETER); - if (logger.isDebugEnabled()) + if (logger.isDebugEnabled()) if (content) logger.debug("Serving resource '" + path + "' headers and data"); else @@ -2214,16 +2214,17 @@ public class FilesHandler extends RequestHandler { relativePathNoFolderName = relativePath.substring(0, indexFolderPath); else relativePathNoFolderName = relativePath; - String parentDirectory = folderPath; + String parentDirectory = rewriteUrl(folderPath); //To-do: further search in encoding folder names with special characters - //String rewrittenParentDirectory = rewriteUrl(parentDirectory); +// String rewrittenParentDirectory = rewriteUrl(parentDirectory); if (parentDirectory.endsWith("/")) parentDirectory = parentDirectory.substring(0, parentDirectory.length() - 1); int slash = parentDirectory.lastIndexOf('/'); - parentDirectory = parentDirectory.substring(0,slash); + if(!parentDirectory.equals("/") && !parentDirectory.equals("")) + parentDirectory = parentDirectory.substring(0,slash); if (slash >= 0) { sb.append(" - "); sb.append(""); + }else{ + sb.append(" - "); + sb.append(""); + sb.append("Up To "); + if (parentDirectory.equals("")) + parentDirectory = rewrittenContextPath + relativePathNoFolderName ; + sb.append("/"); + sb.append(""); + sb.append(""); } sb.append(""); @@ -2260,36 +2273,39 @@ public class FilesHandler extends RequestHandler { Iterator iter = folder.getSubfolders().iterator(); while (iter.hasNext()) { FolderDTO subf = (FolderDTO) iter.next(); - String resourceName = subf.getName(); - if (resourceName.equalsIgnoreCase("WEB-INF") || resourceName.equalsIgnoreCase("META-INF")) - continue; - - sb.append("\r\n"); - shade = !shade; - - sb.append("  \r\n"); - sb.append(""); - sb.append(RequestUtil.filter(resourceName)); - sb.append("/"); - sb.append("\r\n"); + if(subf.isReadForAll()){ + String resourceName = subf.getName(); + if (resourceName.equalsIgnoreCase("WEB-INF") || resourceName.equalsIgnoreCase("META-INF")) + continue; - sb.append(""); - sb.append(" "); - sb.append("\r\n"); + sb.append("\r\n"); + shade = !shade; + sb.append("  \r\n"); + sb.append(""); + sb.append(RequestUtil.filter(resourceName)); + sb.append("/"); + sb.append("\r\n"); - sb.append(""); - sb.append(getLastModifiedHttp(folder.getAuditInfo())); - sb.append("\r\n"); + sb.append(""); + sb.append(" "); + sb.append("\r\n"); + sb.append(""); + sb.append(getLastModifiedHttp(folder.getAuditInfo())); + sb.append("\r\n"); - sb.append("\r\n"); + sb.append("\r\n"); + } } List files; try { @@ -2307,7 +2323,7 @@ public class FilesHandler extends RequestHandler { String resourceName = file.getName(); if (resourceName.equalsIgnoreCase("WEB-INF") || resourceName.equalsIgnoreCase("META-INF")) continue; - + String rewrittenResource = rewriteUrl(resourceName); sb.append(""); sb.append(RequestUtil.filter(resourceName)); sb.append("\r\n"); -- 1.7.10.4