Author: agilliland
Date: Mon May 21 16:28:27 2007
New Revision: 540354

URL: http://svn.apache.org/viewvc?view=rev&rev=540354
Log:
more validation improvements, this time cleaning up validation on core actions.


Added:
    
roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblog-validation.xml
    roller/trunk/src/org/apache/roller/ui/core/struts2/Profile-validation.xml
    roller/trunk/src/org/apache/roller/ui/core/struts2/Register-validation.xml
Modified:
    roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblog.java
    roller/trunk/src/org/apache/roller/ui/core/struts2/Profile.java
    roller/trunk/src/org/apache/roller/ui/core/struts2/Register.java

Added: 
roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblog-validation.xml
URL: 
http://svn.apache.org/viewvc/roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblog-validation.xml?view=auto&rev=540354
==============================================================================
--- 
roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblog-validation.xml 
(added)
+++ 
roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblog-validation.xml 
Mon May 21 16:28:27 2007
@@ -0,0 +1,71 @@
+<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
+       "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd";>
+<validators>
+    
+    <field name="bean.handle">
+        <field-validator type="requiredstring">
+            <message key="CreateWeblog.error.handleNull">unspecified 
key</message>
+        </field-validator>
+        
+        <field-validator type="stringlength">
+            <param name="maxLength">255</param>
+            <message key="CreateWeblog.error.handleSize">unspecified 
key</message>
+        </field-validator>
+    </field>
+    
+    <field name="bean.name">
+        <field-validator type="requiredstring">
+            <message key="CreateWeblog.error.nameNull">unspecified 
key</message>
+        </field-validator>
+        
+        <field-validator type="stringlength">
+            <param name="maxLength">255</param>
+            <message key="CreateWeblog.error.nameSize">unspecified 
key</message>
+        </field-validator>
+    </field>
+    
+    <field name="bean.description">
+        <field-validator type="stringlength">
+            <param name="maxLength">255</param>
+            <message key="CreateWeblog.error.descriptionSize">unspecified 
key</message>
+        </field-validator>
+    </field>
+    
+    <field name="bean.emailAddress">
+        <field-validator type="requiredstring">
+            <message key="CreateWeblog.error.emailAddressNull">unspecified 
key</message>
+        </field-validator>
+        
+        <field-validator type="stringlength">
+            <param name="maxLength">255</param>
+            <message key="CreateWeblog.error.emailAddressSize">unspecified 
key</message>
+        </field-validator>
+        
+        <field-validator type="email">
+            <message key="CreateWeblog.error.emailAddressBad">unspecified 
key</message>
+        </field-validator>
+    </field>
+    
+    <field name="bean.locale">
+        <field-validator type="requiredstring">
+            <message key="CreateWeblog.error.localeNull">unspecified 
key</message>
+        </field-validator>
+        
+        <field-validator type="stringlength">
+            <param name="maxLength">20</param>
+            <message key="CreateWeblog.error.localeSize">unspecified 
key</message>
+        </field-validator>
+    </field>
+    
+    <field name="bean.timeZone">
+        <field-validator type="requiredstring">
+            <message key="CreateWeblog.error.timeZoneNull">unspecified 
key</message>
+        </field-validator>
+        
+        <field-validator type="stringlength">
+            <param name="maxLength">20</param>
+            <message key="CreateWeblog.error.timeZoneSize">unspecified 
key</message>
+        </field-validator>
+    </field>
+    
+</validators>
\ No newline at end of file

Modified: roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblog.java
URL: 
http://svn.apache.org/viewvc/roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblog.java?view=diff&rev=540354&r1=540353&r2=540354
==============================================================================
--- roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblog.java 
(original)
+++ roller/trunk/src/org/apache/roller/ui/core/struts2/CreateWeblog.java Mon 
May 21 16:28:27 2007
@@ -33,6 +33,7 @@
 import org.apache.roller.pojos.WebsiteData;
 import org.apache.roller.ui.core.util.struts2.UIAction;
 import org.apache.roller.util.Utilities;
+import org.apache.struts2.interceptor.validation.SkipValidation;
 
 
 /**
@@ -56,6 +57,7 @@
     }
     
     
+    @SkipValidation
     public String execute() {
         
         UserData user = getAuthenticatedUser();
@@ -85,6 +87,7 @@
     }
     
     
+    @SkipValidation
     public String cancel() {
         return "cancel";
     }
@@ -93,7 +96,6 @@
     public String save() {
         
         UserData user = getAuthenticatedUser();
-        
         try {
             if (!RollerConfig.getBooleanProperty("groupblogging.enabled")) {
                 UserManager mgr = RollerFactory.getRoller().getUserManager();
@@ -110,7 +112,6 @@
             log.error("error checking for existing weblogs count", ex);
         }
         
-        // custom validation
         myValidate();
         
         if(!hasActionErrors()) {
@@ -154,29 +155,22 @@
     }
     
     
-    // TODO: replace with struts2 validation
-    private void myValidate()  {
+    public void myValidate()  {
         
         String allowed = RollerConfig.getProperty("username.allowedChars");
         if(allowed == null || allowed.trim().length() == 0) {
             allowed = Register.DEFAULT_ALLOWED_CHARS;
         }
-        String safe = CharSetUtils.keep(getBean().getHandle(), allowed);
-        
-        if (StringUtils.isEmpty(getBean().getName())) {
-            addError("createWeblog.error.missingName");
-        }
         
-        if (StringUtils.isEmpty(getBean().getHandle())) {
-            addError("createWeblog.error.missingHandle");
-        } else if (!safe.equals(getBean().getHandle()) ) {
+        // make sure handle only contains safe characters
+        String safe = CharSetUtils.keep(getBean().getHandle(), allowed);
+        if (!safe.equals(getBean().getHandle()) ) {
             addError("createWeblog.error.invalidHandle");
         }
         
-        if (StringUtils.isEmpty(getBean().getEmailAddress())) {
-            addError("createWeblog.error.missingEmailAddress");
-        }
+        // make sure theme was specified and is a valid value
         
+        // make sure handle isn't already taken
         if(!StringUtils.isEmpty(getBean().getHandle())) try {
             UserManager mgr = RollerFactory.getRoller().getUserManager();
             if (mgr.getWebsiteByHandle(getBean().getHandle()) != null) {

Added: roller/trunk/src/org/apache/roller/ui/core/struts2/Profile-validation.xml
URL: 
http://svn.apache.org/viewvc/roller/trunk/src/org/apache/roller/ui/core/struts2/Profile-validation.xml?view=auto&rev=540354
==============================================================================
--- roller/trunk/src/org/apache/roller/ui/core/struts2/Profile-validation.xml 
(added)
+++ roller/trunk/src/org/apache/roller/ui/core/struts2/Profile-validation.xml 
Mon May 21 16:28:27 2007
@@ -0,0 +1,64 @@
+<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
+       "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd";>
+<validators>
+    
+    <field name="bean.screenName">
+        <field-validator type="requiredstring">
+            <message key="Register.error.screenNameNull">unspecified 
key</message>
+        </field-validator>
+        
+        <field-validator type="stringlength">
+            <param name="maxLength">255</param>
+            <message key="Register.error.screenNameSize">unspecified 
key</message>
+        </field-validator>
+    </field>
+    
+    <field name="bean.fullName">
+        <field-validator type="requiredstring">
+            <message key="Register.error.fullNameNull">unspecified 
key</message>
+        </field-validator>
+        
+        <field-validator type="stringlength">
+            <param name="maxLength">255</param>
+            <message key="Register.error.fullNameSize">unspecified 
key</message>
+        </field-validator>
+    </field>
+    
+    <field name="bean.emailAddress">
+        <field-validator type="requiredstring">
+            <message key="Register.error.emailAddressNull">unspecified 
key</message>
+        </field-validator>
+        
+        <field-validator type="stringlength">
+            <param name="maxLength">255</param>
+            <message key="Register.error.emailAddressSize">unspecified 
key</message>
+        </field-validator>
+        
+        <field-validator type="email">
+            <message key="Register.error.emailAddressBad">unspecified 
key</message>
+        </field-validator>
+    </field>
+    
+    <field name="bean.locale">
+        <field-validator type="requiredstring">
+            <message key="Register.error.localeNull">unspecified key</message>
+        </field-validator>
+        
+        <field-validator type="stringlength">
+            <param name="maxLength">20</param>
+            <message key="Register.error.localeSize">unspecified key</message>
+        </field-validator>
+    </field>
+    
+    <field name="bean.timeZone">
+        <field-validator type="requiredstring">
+            <message key="Register.error.timeZoneNull">unspecified 
key</message>
+        </field-validator>
+        
+        <field-validator type="stringlength">
+            <param name="maxLength">20</param>
+            <message key="Register.error.timeZoneSize">unspecified 
key</message>
+        </field-validator>
+    </field>
+    
+</validators>
\ No newline at end of file

Modified: roller/trunk/src/org/apache/roller/ui/core/struts2/Profile.java
URL: 
http://svn.apache.org/viewvc/roller/trunk/src/org/apache/roller/ui/core/struts2/Profile.java?view=diff&rev=540354&r1=540353&r2=540354
==============================================================================
--- roller/trunk/src/org/apache/roller/ui/core/struts2/Profile.java (original)
+++ roller/trunk/src/org/apache/roller/ui/core/struts2/Profile.java Mon May 21 
16:28:27 2007
@@ -26,6 +26,7 @@
 import org.apache.roller.business.UserManager;
 import org.apache.roller.pojos.UserData;
 import org.apache.roller.ui.core.util.struts2.UIAction;
+import org.apache.struts2.interceptor.validation.SkipValidation;
 
 
 /**
@@ -50,6 +51,7 @@
     }
     
     
+    @SkipValidation
     public String execute() {
         
         UserData ud = getAuthenticatedUser();
@@ -65,6 +67,7 @@
     }
     
     
+    @SkipValidation
     public String cancel() {
         return "cancel";
     }
@@ -72,7 +75,6 @@
     
     public String save() {
         
-        // custom validation
         myValidate();
         
         if (!hasActionErrors()) {
@@ -121,11 +123,13 @@
     }
     
     
-    // TODO: replace with struts2 validation
-    private void myValidate() {
+    public void myValidate() {
         
-        if (StringUtils.isEmpty(getBean().getEmailAddress())) {
-            addError("error.add.user.missingEmailAddress");
+        // check that passwords match if they were specified
+        if(!StringUtils.isEmpty(getBean().getPasswordText())) {
+            
if(!getBean().getPasswordText().equals(getBean().getPasswordConfirm())) {
+                addError("Register.error.passowordMismatch");
+            }
         }
     }
     

Added: 
roller/trunk/src/org/apache/roller/ui/core/struts2/Register-validation.xml
URL: 
http://svn.apache.org/viewvc/roller/trunk/src/org/apache/roller/ui/core/struts2/Register-validation.xml?view=auto&rev=540354
==============================================================================
--- roller/trunk/src/org/apache/roller/ui/core/struts2/Register-validation.xml 
(added)
+++ roller/trunk/src/org/apache/roller/ui/core/struts2/Register-validation.xml 
Mon May 21 16:28:27 2007
@@ -0,0 +1,98 @@
+<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
+       "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd";>
+<validators>
+    
+    <field name="bean.userName">
+        <field-validator type="requiredstring">
+            <message key="Register.error.nameNull">unspecified key</message>
+        </field-validator>
+        
+        <field-validator type="stringlength">
+            <param name="maxLength">255</param>
+            <message key="Register.error.nameSize">unspecified key</message>
+        </field-validator>
+    </field>
+    
+    <field name="bean.passwordText">
+        <field-validator type="requiredstring">
+            <message key="Register.error.passwordNull">unspecified 
key</message>
+        </field-validator>
+        
+        <field-validator type="stringlength">
+            <param name="maxLength">255</param>
+            <message key="Register.error.passwordSize">unspecified 
key</message>
+        </field-validator>
+    </field>
+    
+    <field name="bean.passwordConfirm">
+        <field-validator type="requiredstring">
+            <message key="Register.error.passwordConfirmNull">unspecified 
key</message>
+        </field-validator>
+        
+        <field-validator type="stringlength">
+            <param name="maxLength">255</param>
+            <message key="Register.error.passwordConfirmSize">unspecified 
key</message>
+        </field-validator>
+    </field>
+    
+    
+    <field name="bean.screenName">
+        <field-validator type="requiredstring">
+            <message key="Register.error.screenNameNull">unspecified 
key</message>
+        </field-validator>
+        
+        <field-validator type="stringlength">
+            <param name="maxLength">255</param>
+            <message key="Register.error.screenNameSize">unspecified 
key</message>
+        </field-validator>
+    </field>
+    
+    <field name="bean.fullName">
+        <field-validator type="requiredstring">
+            <message key="Register.error.fullNameNull">unspecified 
key</message>
+        </field-validator>
+        
+        <field-validator type="stringlength">
+            <param name="maxLength">255</param>
+            <message key="Register.error.fullNameSize">unspecified 
key</message>
+        </field-validator>
+    </field>
+    
+    <field name="bean.emailAddress">
+        <field-validator type="requiredstring">
+            <message key="Register.error.emailAddressNull">unspecified 
key</message>
+        </field-validator>
+        
+        <field-validator type="stringlength">
+            <param name="maxLength">255</param>
+            <message key="Register.error.emailAddressSize">unspecified 
key</message>
+        </field-validator>
+        
+        <field-validator type="email">
+            <message key="Register.error.emailAddressBad">unspecified 
key</message>
+        </field-validator>
+    </field>
+    
+    <field name="bean.locale">
+        <field-validator type="requiredstring">
+            <message key="Register.error.localeNull">unspecified key</message>
+        </field-validator>
+        
+        <field-validator type="stringlength">
+            <param name="maxLength">20</param>
+            <message key="Register.error.localeSize">unspecified key</message>
+        </field-validator>
+    </field>
+    
+    <field name="bean.timeZone">
+        <field-validator type="requiredstring">
+            <message key="Register.error.timeZoneNull">unspecified 
key</message>
+        </field-validator>
+        
+        <field-validator type="stringlength">
+            <param name="maxLength">20</param>
+            <message key="Register.error.timeZoneSize">unspecified 
key</message>
+        </field-validator>
+    </field>
+    
+</validators>
\ No newline at end of file

Modified: roller/trunk/src/org/apache/roller/ui/core/struts2/Register.java
URL: 
http://svn.apache.org/viewvc/roller/trunk/src/org/apache/roller/ui/core/struts2/Register.java?view=diff&rev=540354&r1=540353&r2=540354
==============================================================================
--- roller/trunk/src/org/apache/roller/ui/core/struts2/Register.java (original)
+++ roller/trunk/src/org/apache/roller/ui/core/struts2/Register.java Mon May 21 
16:28:27 2007
@@ -36,6 +36,7 @@
 import org.apache.roller.ui.core.util.struts2.UIAction;
 import org.apache.roller.util.MailUtil;
 import org.apache.struts2.interceptor.ServletRequestAware;
+import org.apache.struts2.interceptor.validation.SkipValidation;
 
 
 /**
@@ -73,6 +74,7 @@
     }
     
     
+    @SkipValidation
     public String execute() {
         
         
if(!RollerRuntimeConfig.getBooleanProperty("users.registration.enabled")) {
@@ -104,6 +106,7 @@
     }
     
     
+    @SkipValidation
     public String cancel() {
         return "cancel";
     }
@@ -115,7 +118,6 @@
             return "disabled";
         }
         
-        // run some validation
         myValidate();
         
         if (!hasActionErrors()) try {
@@ -244,8 +246,7 @@
     }
     
     
-    // TODO: replace with struts2 validation
-    protected void myValidate() {
+    public void myValidate() {
         
         // if usingSSO, we don't want to error on empty password/username from 
HTML form.
         setFromSS0(false);
@@ -269,21 +270,30 @@
         if(allowed == null || allowed.trim().length() == 0) {
             allowed = DEFAULT_ALLOWED_CHARS;
         }
-        String safe = CharSetUtils.keep(getBean().getUserName(), allowed);
         
-        if (StringUtils.isEmpty(getBean().getUserName())) {
-            addError("error.add.user.missingUserName");
-        } else if (!safe.equals(getBean().getUserName()) ) {
+        // check that username only contains safe characters
+        String safe = CharSetUtils.keep(getBean().getUserName(), allowed);
+        if (!safe.equals(getBean().getUserName()) ) {
             addError("error.add.user.badUserName");
         }
         
-        if (StringUtils.isEmpty(getBean().getEmailAddress())) {
-            addError("error.add.user.missingEmailAddress");
+        // check that passwords match
+        
if(!getBean().getPasswordText().equals(getBean().getPasswordConfirm())) {
+            addError("Register.error.passowordMismatch");
         }
         
-        if (StringUtils.isEmpty(getBean().getPasswordText()) && 
-                StringUtils.isEmpty(getBean().getPasswordConfirm())) {
-            addError("error.add.user.missingPassword");
+        // check that username is not taken
+        if(!StringUtils.isEmpty(getBean().getUserName())) try {
+            UserManager mgr = RollerFactory.getRoller().getUserManager();
+            if(mgr.getUserByUserName(getBean().getUserName(), null) != null) {
+                addError("error.add.user.userNameInUse");
+                // reset user name
+                getBean().setUserName(null);
+            }
+        } catch (RollerException ex) {
+            log.error("error checking for user", ex);
+            // TODO: i18n
+            addError("unexpected error");
         }
     }
     


Reply via email to