You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2006/06/20 10:25:21 UTC

svn commit: r415560 - in /lenya/trunk/src/java/org/apache/lenya: cms/editors/InsertAsset.java cms/site/usecases/Assets.java util/ServletHelper.java

Author: andreas
Date: Tue Jun 20 01:25:20 2006
New Revision: 415560

URL: http://svn.apache.org/viewvc?rev=415560&view=rev
Log:
Added a static Method to the ServletHelper which checks the enable-upload parameter in web.xml. This fixes bug #39836. Thanks to Oliver Schalch for the patch.

Modified:
    lenya/trunk/src/java/org/apache/lenya/cms/editors/InsertAsset.java
    lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Assets.java
    lenya/trunk/src/java/org/apache/lenya/util/ServletHelper.java

Modified: lenya/trunk/src/java/org/apache/lenya/cms/editors/InsertAsset.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/editors/InsertAsset.java?rev=415560&r1=415559&r2=415560&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/editors/InsertAsset.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/editors/InsertAsset.java Tue Jun 20 01:25:20 2006
@@ -20,13 +20,17 @@
 import java.util.Iterator;
 import java.util.List;
 
+import org.apache.cocoon.components.ContextHelper;
+import org.apache.cocoon.environment.Request;
 import org.apache.lenya.ac.User;
+import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.Resource;
 import org.apache.lenya.cms.publication.ResourcesManager;
 import org.apache.lenya.cms.usecase.DocumentUsecase;
 import org.apache.lenya.cms.usecase.UsecaseException;
 import org.apache.lenya.cms.usecase.UsecaseInvoker;
 import org.apache.lenya.cms.usecase.UsecaseMessage;
+import org.apache.lenya.util.ServletHelper;
 
 /**
  * Usecase to insert an image into a document.
@@ -51,10 +55,19 @@
             throw new RuntimeException(e);
         }
     }
+    
+    /**
+     * @see org.apache.lenya.cms.usecase.DocumentUsecase#doCheckPreconditions()
+     */
+    protected void doCheckPreconditions() throws Exception {
+        if (!ServletHelper.isUploadEnabled(manager)) {
+            addErrorMessage("Upload is not enabled please check l.b.p!");
+        }
+    }
 
     protected void loadResources() {
         ResourcesManager resourcesManager = null;
-
+        
         try {
             resourcesManager = (ResourcesManager) this.manager.lookup(ResourcesManager.ROLE);
             Resource[] resources = resourcesManager.getResources(getSourceDocument());

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Assets.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Assets.java?rev=415560&r1=415559&r2=415560&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Assets.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Assets.java Tue Jun 20 01:25:20 2006
@@ -28,6 +28,7 @@
 import org.apache.lenya.cms.publication.ResourcesManager;
 import org.apache.lenya.cms.repository.Node;
 import org.apache.lenya.cms.usecase.UsecaseException;
+import org.apache.lenya.util.ServletHelper;
 
 /**
  * Usecase to add Assets to a resource.
@@ -56,6 +57,15 @@
             addErrorMessage("Please choose a file to upload. Your previous choice could not be preselected for security reasons.");
         }
         
+    }
+
+    /**
+     * @see org.apache.lenya.cms.usecase.DocumentUsecase#doCheckPreconditions()
+     */
+    protected void doCheckPreconditions() throws Exception {    
+        if (!ServletHelper.isUploadEnabled(manager)) {
+            addErrorMessage("Upload is not enabled please check l.b.p!");
+        }
     }
 
     /**

Modified: lenya/trunk/src/java/org/apache/lenya/util/ServletHelper.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/util/ServletHelper.java?rev=415560&r1=415559&r2=415560&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/util/ServletHelper.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/util/ServletHelper.java Tue Jun 20 01:25:20 2006
@@ -19,11 +19,25 @@
 
 package org.apache.lenya.util;
 
+import java.io.IOException;
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Map;
 
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.TransformerException;
+
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.cocoon.environment.Request;
+import org.apache.excalibur.source.SourceNotFoundException;
+import org.apache.lenya.cms.cocoon.source.SourceUtil;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.xml.sax.SAXException;
+
+import com.sun.org.apache.xpath.internal.XPathAPI;
 
 /**
  * Servlet utility class.
@@ -88,5 +102,26 @@
         }
         return requestParameters;
     }
-
+    
+    /**
+     * Returns the value of enable-uploads in web.xml
+     * @param manager The Service Manager.
+     * @return true if enable upload is true or not set in web.xml, else false
+     */
+    public static boolean isUploadEnabled(ServiceManager manager)
+            throws SourceNotFoundException, ServiceException,
+            ParserConfigurationException, SAXException, IOException,
+            TransformerException {
+
+        Node node;
+        String webappUrl = "context://WEB-INF/web.xml";
+        Document document = SourceUtil.readDOM(webappUrl, manager);
+        Element root = document.getDocumentElement();
+        node = XPathAPI.selectSingleNode(root,
+                "//init-param[param-name='enable-uploads']/param-value/text()");
+        if (node == null) {
+            return false;
+        }
+        return node.getNodeValue().equals("true");
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org