From 3d0c6d50d341c393890f54704543810563ea5eda Mon Sep 17 00:00:00 2001
From: ulrich <undisclosed>
Date: Sat, 03 Mar 2018 19:13:47 +0000
Subject: [PATCH] Bug mit relativen Pfaden entfernt

---
 src/java/de/uhilger/filecms/pub/Catalog.java |   38 ++++++++++---------
 src/java/de/uhilger/filecms/api/FileMgr.java |   76 +++++++++++++++++++------------------
 2 files changed, 59 insertions(+), 55 deletions(-)

diff --git a/src/java/de/uhilger/filecms/api/FileMgr.java b/src/java/de/uhilger/filecms/api/FileMgr.java
index 7995ba0..7046af4 100644
--- a/src/java/de/uhilger/filecms/api/FileMgr.java
+++ b/src/java/de/uhilger/filecms/api/FileMgr.java
@@ -93,47 +93,49 @@
   private List<FileRef> listInt(String relPath, String orderBy, String order) {
     Bild bild = new Bild();
     List<FileRef> files = new ArrayList();
-    if(relPath.length() == 0) {
-      FileRef namedPublicFolder = new FileRef(PUB_DIR_NAME, true);
-      logger.finer(namedPublicFolder.getAbsolutePath());
-      FileRef namedHomeFolder = new FileRef(HOME_DIR_NAME, true);
-      logger.finer(namedHomeFolder.getAbsolutePath());
-      FileRef namedDavFolder = new FileRef(DAV_DIR_NAME, true);
-      logger.finer(namedDavFolder.getAbsolutePath());
-      files = new ArrayList();
-      files.add(namedHomeFolder);
-      files.add(namedPublicFolder);      
-      files.add(namedDavFolder);      
-      if(getRequest().isUserInRole(WBX_ADMIN_ROLE)) {
-        FileRef namedBaseFolder = new FileRef(WBX_BASE, true);
-        FileRef namedDataFolder = new FileRef(WBX_DATA, true);
-        files.add(namedBaseFolder);
-        files.add(namedDataFolder);
-      }      
-    } else {
-      String path = getTargetDir(relPath).getAbsolutePath();
-      logger.fine("listing path: " + path);
-      File dir = new File(path);
-      if(dir.exists()) {
-        File[] fileArray = dir.listFiles();
-        if(orderBy != null && orderBy.equalsIgnoreCase("name")) {
-          Arrays.sort(fileArray, new FileNameComparator(order));
-        } else {
-          Arrays.sort(fileArray, new FileNameComparator(AbstractComparator.ORDER_ASC));          
+    if (!relPath.startsWith(".")) {
+      if (relPath.length() == 0) {
+        FileRef namedPublicFolder = new FileRef(PUB_DIR_NAME, true);
+        logger.finer(namedPublicFolder.getAbsolutePath());
+        FileRef namedHomeFolder = new FileRef(HOME_DIR_NAME, true);
+        logger.finer(namedHomeFolder.getAbsolutePath());
+        FileRef namedDavFolder = new FileRef(DAV_DIR_NAME, true);
+        logger.finer(namedDavFolder.getAbsolutePath());
+        files = new ArrayList();
+        files.add(namedHomeFolder);
+        files.add(namedPublicFolder);
+        files.add(namedDavFolder);
+        if (getRequest().isUserInRole(WBX_ADMIN_ROLE)) {
+          FileRef namedBaseFolder = new FileRef(WBX_BASE, true);
+          FileRef namedDataFolder = new FileRef(WBX_DATA, true);
+          files.add(namedBaseFolder);
+          files.add(namedDataFolder);
         }
-        for(int i = 0; i < fileArray.length; i++) {
-          logger.fine(fileArray[i].toURI().toString());
-          String fname = fileArray[i].toURI().toString().replace("file:/", "");
-          if(fileArray[i].isDirectory()) {
-            fname = fname.substring(0, fname.length() - 1);
+      } else {
+        String path = getTargetDir(relPath).getAbsolutePath();
+        logger.fine("listing path: " + path);
+        File dir = new File(path);
+        if (dir.exists()) {
+          File[] fileArray = dir.listFiles();
+          if (orderBy != null && orderBy.equalsIgnoreCase("name")) {
+            Arrays.sort(fileArray, new FileNameComparator(order));
+          } else {
+            Arrays.sort(fileArray, new FileNameComparator(AbstractComparator.ORDER_ASC));
           }
-          logger.fine(fname);
-          FileRef ref = new FileRef(fname, fileArray[i].isDirectory());
-          ref.setMimetype(bild.getMimeType(fileArray[i]));
-          files.add(ref);
+          for (int i = 0; i < fileArray.length; i++) {
+            logger.fine(fileArray[i].toURI().toString());
+            String fname = fileArray[i].toURI().toString().replace("file:/", "");
+            if (fileArray[i].isDirectory()) {
+              fname = fname.substring(0, fname.length() - 1);
+            }
+            logger.fine(fname);
+            FileRef ref = new FileRef(fname, fileArray[i].isDirectory());
+            ref.setMimetype(bild.getMimeType(fileArray[i]));
+            files.add(ref);
+          }
         }
       }
-    }    
+    }
     return files;
   }
   
diff --git a/src/java/de/uhilger/filecms/pub/Catalog.java b/src/java/de/uhilger/filecms/pub/Catalog.java
index 9538eee..2e8153b 100644
--- a/src/java/de/uhilger/filecms/pub/Catalog.java
+++ b/src/java/de/uhilger/filecms/pub/Catalog.java
@@ -64,26 +64,28 @@
   }
   
   private List<FileRef> listInt(String relPath, String orderBy, String order) {
-     Bild bild = new Bild();
     List<FileRef> files = new ArrayList();
-    StringBuffer path = new StringBuffer(PUB_DIR_PATH); // www/
-    path.append(relPath);
-    File dir = new File(getBase().getAbsolutePath(), path.toString());
-    if(dir.exists()) {
-      File[] fileArray = dir.listFiles();
-      if(orderBy != null && orderBy.equalsIgnoreCase("date")) {
-        Arrays.sort(fileArray, new FileDateComparator(order));
-      }
-      for(int i = 0; i < fileArray.length; i++) {
-        logger.fine(fileArray[i].toURI().toString());
-        String fname = fileArray[i].toURI().toString().replace("file:/", "");
-        if(fileArray[i].isDirectory()) {
-          fname = fname.substring(0, fname.length() - 1);
+    if(!relPath.startsWith(".")) {
+      Bild bild = new Bild();
+      StringBuffer path = new StringBuffer(PUB_DIR_PATH); // www/
+      path.append(relPath);
+      File dir = new File(getBase().getAbsolutePath(), path.toString());
+      if(dir.exists()) {
+        File[] fileArray = dir.listFiles();
+        if(orderBy != null && orderBy.equalsIgnoreCase("date")) {
+          Arrays.sort(fileArray, new FileDateComparator(order));
         }
-        logger.fine(fname);
-        FileRef ref = new FileRef(fname, fileArray[i].isDirectory());
-        ref.setMimetype(bild.getMimeType(fileArray[i]));
-        files.add(ref);
+        for(int i = 0; i < fileArray.length; i++) {
+          logger.fine(fileArray[i].toURI().toString());
+          String fname = fileArray[i].toURI().toString().replace("file:/", "");
+          if(fileArray[i].isDirectory()) {
+            fname = fname.substring(0, fname.length() - 1);
+          }
+          logger.fine(fname);
+          FileRef ref = new FileRef(fname, fileArray[i].isDirectory());
+          ref.setMimetype(bild.getMimeType(fileArray[i]));
+          files.add(ref);
+        }
       }
     }
     return files;

--
Gitblit v1.9.3