[jboss-svn-commits] JBL Code SVN: r34887 - in labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk: src/main/java/org/jboss/labs/sbs/plugin/nukesauth and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Aug 25 09:21:24 EDT 2010
Author: lkrzyzanek
Date: 2010-08-25 09:21:23 -0400 (Wed, 25 Aug 2010)
New Revision: 34887
Added:
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/ForgotJBossUsernameAction.java
Modified:
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/pom.xml
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManager.java
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManagerImpl.java
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/EmailResetJBossPasswordToken.java
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/ResetJBossPasswordAction.java
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/plugin/struts.xml
Log:
Added Forgot username feature for nukes accounts and reset password based on nukes e-mail
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/pom.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/pom.xml 2010-08-25 12:43:54 UTC (rev 34886)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/pom.xml 2010-08-25 13:21:23 UTC (rev 34887)
@@ -169,15 +169,7 @@
<scope>test</scope>
</dependency>
</dependencies>
- <!--
- This is where you set the Jive SBS version your plugin is compiled
- against.
- -->
- <properties>
- <sbs.version>4.0.5</sbs.version>
- </properties>
-
<reporting>
<plugins>
<plugin>
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManager.java 2010-08-25 12:43:54 UTC (rev 34886)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManager.java 2010-08-25 13:21:23 UTC (rev 34887)
@@ -109,4 +109,12 @@
*/
public boolean isSBSAccount(String username, boolean caseInsensitive);
+ /**
+ * Check if username is SBS account (by e-mail)
+ *
+ * @param email
+ * @return true if account with same e-mail exists
+ */
+ public boolean isSBSAccountByEmail(String email);
+
}
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManagerImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManagerImpl.java 2010-08-25 12:43:54 UTC (rev 34886)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManagerImpl.java 2010-08-25 13:21:23 UTC (rev 34887)
@@ -234,13 +234,25 @@
@Override
public boolean isSBSAccount(String username, boolean caseInsensitive) {
- if (userManager.getUser(new UserTemplate(username), caseInsensitive) != null) {
+ if (username != null && username.trim().length() > 0
+ && userManager.getUser(new UserTemplate(username), caseInsensitive) != null) {
return true;
} else {
return false;
}
}
+ @Override
+ public boolean isSBSAccountByEmail(String email) {
+ UserTemplate userTemplate = new UserTemplate();
+ userTemplate.setEmail(email);
+ if (email != null && email.trim().length() > 0 && userManager.getUser(userTemplate) != null) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
public void setUserManager(UserManager userManager) {
this.userManager = userManager;
}
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/EmailResetJBossPasswordToken.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/EmailResetJBossPasswordToken.java 2010-08-25 12:43:54 UTC (rev 34886)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/EmailResetJBossPasswordToken.java 2010-08-25 13:21:23 UTC (rev 34887)
@@ -21,6 +21,8 @@
*/
package org.jboss.labs.sbs.plugin.nukesauth.struts;
+import java.util.List;
+
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.jboss.labs.sbs.plugin.nukesauth.EmailResetPasswordAlreadySentException;
@@ -32,6 +34,7 @@
import com.jivesoftware.community.action.EmailResetPasswordToken;
import com.jivesoftware.community.action.util.AlwaysAllowAnonymous;
import com.jivesoftware.community.web.struts.SetReferer;
+import com.jivesoftware.util.StringUtils;
import com.opensymphony.xwork2.Validateable;
/**
@@ -54,33 +57,55 @@
@Override
public void validate() {
- if (getUsername() == null || getUsername().trim().length() < 1) {
- addActionError(getText("rstpwd.err.mustEntrUsrname.text"));
- return;
+ if (StringUtils.isEmpty(getUsername()) && StringUtils.isEmpty(getEmailAddress())) {
+ addActionError(getText("rstpwd.err.mstEntrUsrnameOrEmail.text"));
}
- if (sbsAccountManager.isSBSAccount(getUsername(), !isPasswordResetCaseSensitive())) {
+
+ if (sbsAccountManager.isSBSAccount(getUsername(), !isPasswordResetCaseSensitive())
+ || sbsAccountManager.isSBSAccountByEmail(getEmailAddress())) {
+ log.debug("Account is SBS Account");
super.validate();
+ return;
}
- NukesUser nukesUser = nukesAccountManager.getAccountByUsername(getUsername());
+ NukesUser nukesUser = getNukesUser();
if (nukesUser == null) {
// let SBS to handle 'user not found'.
super.validate();
+ return;
}
log.debug("Account is Nukes Account");
}
+ private NukesUser getNukesUser() {
+ // Load the user, either by username or email
+ if (!StringUtils.isEmpty(getUsername())) {
+ log.debug("Reset password based on username");
+ return nukesAccountManager.getAccountByUsername(getUsername());
+ } else {
+ List<NukesUser> nukesUsers = nukesAccountManager.getNukesAccountsByEmail(getEmailAddress());
+ log.debug("Reset password based on e-mail");
+ if (nukesUsers.size() > 0) {
+ return nukesUsers.get(0);
+ }
+ }
+ return null;
+ }
+
@Override
public String execute() {
- if (sbsAccountManager.isSBSAccount(getUsername(), !isPasswordResetCaseSensitive())) {
+ if (sbsAccountManager.isSBSAccount(getUsername(), !isPasswordResetCaseSensitive())
+ || sbsAccountManager.isSBSAccountByEmail(getEmailAddress())) {
return super.execute();
}
if (!isPasswordResetSupported()) {
addActionMessage(getText("rstpwd.err.func_disabled.text"));
return ERROR;
}
-
- NukesUser nukesUser = nukesAccountManager.getAccountByUsername(getUsername());
+ NukesUser nukesUser = getNukesUser();
+ if (log.isDebugEnabled()) {
+ log.debug("NukesUser: " + nukesUser);
+ }
if (nukesUser == null) {
// let SBS to handle 'user not found'.
return super.execute();
Added: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/ForgotJBossUsernameAction.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/ForgotJBossUsernameAction.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/ForgotJBossUsernameAction.java 2010-08-25 13:21:23 UTC (rev 34887)
@@ -0,0 +1,81 @@
+/*
+ * JBoss Community http://jboss.org/
+ *
+ * Copyright (c) 2010 Red Hat Middleware, LLC. All rights reserved.
+ *
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT A WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License, v.2.1 along with this distribution; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ * Red Hat Author(s): Libor Krzyzanek
+ */
+package org.jboss.labs.sbs.plugin.nukesauth.struts;
+
+import java.util.List;
+
+import org.jboss.labs.sbs.plugin.nukesauth.NukesAccountManager;
+import org.jboss.labs.sbs.plugin.nukesauth.SbsAccountManager;
+import org.jboss.labs.sbs.plugin.nukesauth.dao.NukesUser;
+
+import com.jivesoftware.base.UserTemplate;
+import com.jivesoftware.community.action.ForgotUsernameAction;
+import com.jivesoftware.util.StringUtils;
+
+/**
+ * Extension of {@link ForgotUsernameAction} which provides Forgot Nukes Account
+ * use case
+ *
+ * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ */
+public class ForgotJBossUsernameAction extends ForgotUsernameAction {
+
+ private SbsAccountManager sbsAccountManager;
+
+ private NukesAccountManager nukesAccountManager;
+
+ @Override
+ public void validate() {
+ if (StringUtils.isEmpty(getEmailAddress())) {
+ addActionError(getText("frgtusrname.err.mustEntrEmail.text"));
+ } else if (!StringUtils.isValidEmailAddress(getEmailAddress())) {
+ addActionError(getText("frgtusrname.err.invalidEmail.text"));
+ } else {
+ if (sbsAccountManager.isSBSAccountByEmail(getEmailAddress())) {
+ super.validate();
+ } else {
+ List<NukesUser> nukesUsers = nukesAccountManager.getNukesAccountsByEmail(getEmailAddress());
+ if (nukesUsers.size() > 0) {
+
+ NukesUser nukesUser = nukesUsers.get(0);
+ UserTemplate user = new UserTemplate(nukesUser.getUsername());
+ user.setName(nukesUser.getName());
+ user.setEmail(nukesUser.getEmail());
+
+ setUser(user);
+ } else {
+ // let parent to handle 'no user found'
+ super.validate();
+ }
+ }
+ }
+ }
+
+ public void setSbsAccountManager(SbsAccountManager sbsAccountManager) {
+ this.sbsAccountManager = sbsAccountManager;
+ }
+
+ public void setNukesAccountManager(NukesAccountManager nukesAccountManager) {
+ this.nukesAccountManager = nukesAccountManager;
+ }
+
+}
Property changes on: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/ForgotJBossUsernameAction.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/ResetJBossPasswordAction.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/ResetJBossPasswordAction.java 2010-08-25 12:43:54 UTC (rev 34886)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/ResetJBossPasswordAction.java 2010-08-25 13:21:23 UTC (rev 34887)
@@ -54,7 +54,7 @@
if (!isPasswordResetSupported()) {
addActionMessage(getText("rstpwd.err.func_disabled.text"));
return ERROR;
- }
+ }
if (sbsAccountManager.isSBSAccount(getUsername(), !isPasswordResetCaseSensitive())) {
return super.execute();
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/plugin/struts.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/plugin/struts.xml 2010-08-25 12:43:54 UTC (rev 34886)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/plugin/struts.xml 2010-08-25 13:21:23 UTC (rev 34887)
@@ -74,6 +74,15 @@
<result name="success">/template/global/reset-password.ftl</result>
</action>
+ <action name="forgot-jboss-username"
+ class="org.jboss.labs.sbs.plugin.nukesauth.struts.ForgotJBossUsernameAction">
+ <result name="cancel" type="redirect">login!input.jspa</result>
+ <result name="input">/template/global/forgot-username.ftl</result>
+ <result name="success">/template/global/forgot-username.ftl</result>
+ <result name="error">/template/global/forgot-username.ftl</result>
+ </action>
+
+
<action name="edit-jboss-profile"
class="org.jboss.labs.sbs.plugin.nukesauth.struts.EditJBossProfile">
<interceptor-ref name="paramsPrepareParamsStack" />
More information about the jboss-svn-commits
mailing list