You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2009/02/22 16:58:16 UTC

svn commit: r746742 - in /roller/branches/roller_4.0/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin: GlobalCommentManagement.java GlobalConfig.java

Author: snoopdave
Date: Sun Feb 22 15:58:16 2009
New Revision: 746742

URL: http://svn.apache.org/viewvc?rev=746742&view=rev
Log:
Fix for https://issues.apache.org/roller/browse/ROL-1788, GET on admin URL erroneously clears checkboxes

Modified:
    roller/branches/roller_4.0/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java
    roller/branches/roller_4.0/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalConfig.java

Modified: roller/branches/roller_4.0/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java?rev=746742&r1=746741&r2=746742&view=diff
==============================================================================
--- roller/branches/roller_4.0/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java (original)
+++ roller/branches/roller_4.0/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java Sun Feb 22 15:58:16 2009
@@ -25,6 +25,7 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import javax.servlet.http.HttpServletRequest;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -38,12 +39,13 @@
 import org.apache.roller.weblogger.util.cache.CacheManager;
 import org.apache.roller.weblogger.ui.struts2.util.UIAction;
 import org.apache.roller.weblogger.util.Utilities;
+import org.apache.struts2.interceptor.ServletRequestAware;
 
 
 /**
  * Action for managing global set of comments.
  */
-public class GlobalCommentManagement extends UIAction {
+public class GlobalCommentManagement extends UIAction implements ServletRequestAware {
     
     private static Log log = LogFactory.getLog(GlobalCommentManagement.class);
     
@@ -65,6 +67,10 @@
     // indicates number of comments that would be deleted by bulk removal
     // a non-zero value here indicates bulk removal is a valid option
     private int bulkDeleteCount = 0;
+
+    // work around checkbox issue in cases where user inadvertently does a
+    // GET on the GlobalConfig!save URL and thus sets all checkboxes to false
+    private String httpMethod = "GET";
     
     
     public GlobalCommentManagement() {
@@ -239,6 +245,7 @@
      * Update a list of comments.
      */
     public String update() {
+        if (!"POST".equals(httpMethod)) return ERROR;
         
         try {
             WeblogManager wmgr = WebloggerFactory.getWeblogger().getWeblogManager();
@@ -377,5 +384,9 @@
     public void setPager(CommentsPager pager) {
         this.pager = pager;
     }
+
+    public void setServletRequest(HttpServletRequest req) {
+        httpMethod = req.getMethod();
+    }
     
 }

Modified: roller/branches/roller_4.0/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalConfig.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.0/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalConfig.java?rev=746742&r1=746741&r2=746742&view=diff
==============================================================================
--- roller/branches/roller_4.0/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalConfig.java (original)
+++ roller/branches/roller_4.0/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalConfig.java Sun Feb 22 15:58:16 2009
@@ -23,6 +23,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import javax.servlet.http.HttpServletRequest;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -37,12 +38,13 @@
 import org.apache.roller.weblogger.pojos.RuntimeConfigProperty;
 import org.apache.roller.weblogger.ui.struts2.util.UIAction;
 import org.apache.struts2.interceptor.ParameterAware;
+import org.apache.struts2.interceptor.ServletRequestAware;
 
 
 /**
  * Action which handles editing of global configuration.
  */
-public class GlobalConfig extends UIAction implements ParameterAware {
+public class GlobalConfig extends UIAction implements ParameterAware, ServletRequestAware {
     
     private static Log log = LogFactory.getLog(GlobalConfig.class);
     
@@ -60,8 +62,12 @@
     
     // comment plugins that are enabled.  this is what the html form submits to
     private String[] commentPlugins = new String[0];
-    
-    
+
+    // work around checkbox issue in cases where user inadvertently does a
+    // GET on the GlobalConfig!save URL and thus sets all checkboxes to false
+    private String httpMethod = "GET";
+
+
     public GlobalConfig() {
         this.actionName = "globalConfig";
         this.desiredMenu = "admin";
@@ -129,6 +135,7 @@
      * Save global properties.
      */
     public String save() {
+        if (!"POST".equals(httpMethod)) return ERROR;
         
         // only set values for properties that are already defined
         String propName = null;
@@ -247,5 +254,9 @@
     public void setCommentPlugins(String[] commentPlugins) {
         this.commentPlugins = commentPlugins;
     }
+
+    public void setServletRequest(HttpServletRequest req) {
+        httpMethod = req.getMethod();
+    }
     
 }