Author: christian.bauer(a)jboss.com
Date: 2008-02-28 03:43:43 -0500 (Thu, 28 Feb 2008)
New Revision: 7492
Modified:
trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/action/TagEditor.java
trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/action/UserPasswordReset.java
Log:
JBSEAM-2687, activate inactive account on password reset
Modified: trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/action/TagEditor.java
===================================================================
--- trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/action/TagEditor.java 2008-02-27
14:31:31 UTC (rev 7491)
+++ trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/action/TagEditor.java 2008-02-28
08:43:43 UTC (rev 7492)
@@ -15,12 +15,9 @@
import org.jboss.seam.wiki.core.dao.TagDAO;
import org.jboss.seam.wiki.core.model.DisplayTagCount;
import org.jboss.seam.wiki.core.model.WikiDirectory;
-import org.jboss.seam.wiki.core.model.WikiFile;
import javax.faces.application.FacesMessage;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.SortedSet;
+import java.util.*;
import java.io.Serializable;
/**
@@ -40,7 +37,7 @@
@In
private FacesMessages facesMessages;
- private SortedSet<String> tags;
+ private SortedSet<String> tags = new TreeSet<String>();
private String newTag;
private List<DisplayTagCount> popularTags;
@@ -53,7 +50,7 @@
}
public List<String> getTagsAsList() {
- return new ArrayList<String>(tags);
+ return tags != null ? new ArrayList<String>(tags) :
Collections.EMPTY_LIST;
}
public String getNewTag() {
Modified:
trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/action/UserPasswordReset.java
===================================================================
---
trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/action/UserPasswordReset.java 2008-02-27
14:31:31 UTC (rev 7491)
+++
trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/action/UserPasswordReset.java 2008-02-28
08:43:43 UTC (rev 7492)
@@ -30,6 +30,24 @@
import java.util.regex.Pattern;
/**
+ * The password reset feature works as follows:
+ *
+ * - User enters username and e-mail address. The account does not have to be activated,
so
+ * the "Reset Password" functionality can also serve as "Resend
Activation E-Mail".
+ *
+ * - Both username and e-mail address are checked with what we have in the database.
+ *
+ * - An activation code is generated and stored in the database for this user account.
+ *
+ * - An e-mail with the activation code is send to the users e-mail address.
+ *
+ * - If the user clicks on the activation link, the login form on the page will
+ * switch to a password reset form. (If the activation code was correct.)
+ *
+ * - After typing in the password twice, the user account gets a new password and
+ * we also activate it.
+ *
+ *
* @author Christian Bauer
*/
@Name("userPasswordReset")
@@ -155,6 +173,10 @@
User persistentUser = userDAO.findUser(user.getId());
persistentUser.setPasswordHash(hashUtil.hash(getPassword()));
+
+ // As a side effect, also activate the user!
http://jira.jboss.com/jira/browse/JBSEAM-2687
+ persistentUser.setActivated(true);
+
Contexts.getSessionContext().remove(RESET_PASSWORD_OF_USER);
facesMessages.addFromResourceBundleOrDefault(