Dateiverwaltung für die WebBox
ulrich
2018-03-03 968b07dace8f64519eaf2455729d87b66678d958
Ordner dav als Austausch-Ort hinzugefuegt
1 files added
5 files modified
69 ■■■■■ changed files
src/java/de/uhilger/filecms/api/Api.java 8 ●●●●● patch | view | raw | blame | history
src/java/de/uhilger/filecms/api/FileMgr.java 4 ●●● patch | view | raw | blame | history
src/java/de/uhilger/filecms/web/Initialiser.java 7 ●●●● patch | view | raw | blame | history
web/META-INF/daten/dav/WEB-INF/web.xml 44 ●●●●● patch | view | raw | blame | history
web/ui/index.html 2 ●●● patch | view | raw | blame | history
web/ui/ui.js 4 ●●●● patch | view | raw | blame | history
src/java/de/uhilger/filecms/api/Api.java
@@ -46,13 +46,18 @@
  public static final String WBX_DATA_PATH = "daten/";
  public static final String PUB_DIR_PATH = "www/";
  public static final String HOME_DIR_PATH = "home/";
  public static final String DAV_DIR_PATH = "dav/";
  public static final String PUB_DIR_NAME = "Oeffentlich";
  //public static final String HOME_DIR_NAME = "Persoenlicher Ordner";
  public static final String HOME_DIR_NAME = "Persoenlich";
  public static final String DAV_DIR_NAME = "Austausch";
  public static final String WBX_ADMIN_ROLE = "wbxAdmin";
  
  public static final String WBX_BASE = "$basis";
  public static final String WBX_DATA = "$daten";
  public static final String DAV_DATA = "$dav";
    
  /**
   * Einen relativen Pfad in einen absoluten Pfad der WebBox 
@@ -78,6 +83,9 @@
    } else if(relPath.startsWith(HOME_DIR_NAME)) {
      targetPath = HOME_DIR_PATH + getUserName() + relPath.substring(HOME_DIR_NAME.length());
      targetDir = new File(getBase().getAbsolutePath(), targetPath);
    } else if(relPath.startsWith(DAV_DIR_NAME)) {
      targetPath = DAV_DIR_PATH + /* getUserName() +*/ relPath.substring(DAV_DIR_NAME.length());
      targetDir = new File(getBase().getAbsolutePath(), targetPath);
    } else if(getRequest().isUserInRole(WBX_ADMIN_ROLE)) {
      logger.fine("in admin role");
      if(relPath.startsWith(WBX_BASE)) {
src/java/de/uhilger/filecms/api/FileMgr.java
@@ -21,7 +21,6 @@
import de.uhilger.filecms.data.Bild;
import de.uhilger.filecms.data.FileRef;
import de.uhilger.filecms.pub.AbstractComparator;
import de.uhilger.filecms.pub.FileDateComparator;
import de.uhilger.filecms.pub.FileNameComparator;
import java.awt.Container;
import java.awt.Image;
@@ -99,9 +98,12 @@
      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);
src/java/de/uhilger/filecms/web/Initialiser.java
@@ -111,10 +111,13 @@
      if(!dataDir.exists()) {
        String srcPath = ctx.getRealPath("/"); // file-cms in webapps
        File srcDir = new File(srcPath, "/META-INF/daten/www");
        dataDir = new File(targetDirName);
        try {
          FileUtils.copyDirectoryToDirectory(srcDir, new File(targetDirName));
          FileUtils.copyDirectoryToDirectory(srcDir, dataDir);
          srcDir = new File(srcPath, "/META-INF/daten/home");
          FileUtils.copyDirectoryToDirectory(srcDir, new File(targetDirName));
          FileUtils.copyDirectoryToDirectory(srcDir, dataDir);
          srcDir = new File(srcPath, "/META-INF/daten/dav");
          FileUtils.copyDirectoryToDirectory(srcDir, dataDir);
        } catch (IOException ex) {
          logger.log(Level.SEVERE, null, ex);
        }
web/META-INF/daten/dav/WEB-INF/web.xml
New file
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <description>WebDav-Verzeichnis der WebBox</description>
    <display-name>dav</display-name>
    <servlet>
        <servlet-name>webdav</servlet-name>
        <servlet-class>org.apache.catalina.servlets.WebdavServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>readonly</param-name>
            <param-value>false</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>webdav</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
    <security-constraint>
        <display-name>davConstraint</display-name>
        <web-resource-collection>
            <web-resource-name>dav</web-resource-name>
            <description/>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <description>davNutzerConstraint</description>
            <role-name>davNutzer</role-name>
        </auth-constraint>
    </security-constraint>
    <login-config>
        <auth-method>BASIC</auth-method>
    </login-config>
    <security-role>
        <description/>
        <role-name>davNutzer</role-name>
    </security-role>
</web-app>
web/ui/index.html
@@ -127,7 +127,7 @@
              <a class="dropdown-item disabled" href="/file-cms/ui">Dateien verwalten</a>
              <a class="dropdown-item" href="/wbx-dbcon/ui">Datenbanken verwalten</a>
              <div class="dropdown-divider"></div>
              <a id="m-toggle-slideshow" class="dropdown-item" href="#">Diashow nicht zeigen</a>
              <a id="m-toggle-slideshow" class="dropdown-item" href="#">Diashow einschalten</a>
              <a id="m-test" class="dropdown-item" href="#">Test</a>
              <a id="m-test-2" class="dropdown-item" href="#">Compile</a>
              <a id="m-test-3" class="dropdown-item" href="#">Compile all</a>
web/ui/ui.js
@@ -90,10 +90,10 @@
function fm_toggle_show_slideshow() {
  if(fm_slideshow) {
    $('#m-toggle-slideshow').text('Diashow nicht zeigen');
    $('#m-toggle-slideshow').text('Diashow einschalten');
    fm_slideshow = false;
  } else {
    $('#m-toggle-slideshow').text('Diashow zeigen');
    $('#m-toggle-slideshow').text('Diashow ausschalten');
    fm_slideshow = true;
  }
}