[jboss-svn-commits] JBL Code SVN: r33400 - in labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main: java/org/jboss/labs/sbs/plugin/nukesauth/struts and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jun 8 09:01:37 EDT 2010
Author: lkrzyzanek
Date: 2010-06-08 09:01:35 -0400 (Tue, 08 Jun 2010)
New Revision: 33400
Added:
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/DuplicateAccountLoginAction.java
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/plugin/resources/templates/duplicate-account-login.ftl
Modified:
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/filter/NukesSyncFilter.java
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/resources/plugin_i18n.properties
Log:
Added use case when user is trying to log in via duplicate account
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/filter/NukesSyncFilter.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/filter/NukesSyncFilter.java 2010-06-08 12:06:13 UTC (rev 33399)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/filter/NukesSyncFilter.java 2010-06-08 13:01:35 UTC (rev 33400)
@@ -38,10 +38,12 @@
import org.jboss.labs.sbs.plugin.nukesauth.SbsAccountManager;
import org.jboss.labs.sbs.plugin.nukesauth.dao.NukesUser;
import org.jboss.labs.sbs.plugin.nukesauth.struts.ChooseMasterAccountAction;
+import org.jboss.labs.sbs.plugin.nukesauth.struts.DuplicateAccountLoginAction;
import com.jivesoftware.base.User;
import com.jivesoftware.base.UserManager;
import com.jivesoftware.base.UserNotFoundException;
+import com.jivesoftware.base.UserTemplate;
import com.jivesoftware.community.aaa.JiveAuthenticationProcessingFilter;
/**
@@ -61,6 +63,8 @@
public static final String CHOOSE_MASTER_ACCOUNT_URL = "/account/choose-master-account.jspa";
+ public static final String DUPLICATE_ACCOUNT_URL = "/account/duplicate-account.jspa";
+
@Override
public void afterPropertiesSet() throws Exception {
// do nothing - this is only sync filter - it doesn't do login.
@@ -122,10 +126,6 @@
return;
}
- // TODO: Handle special situation when user is trying to log in via valid
- // duplicate nukes account
- // and in SBS already exists another account with same e-mail
-
try {
if (user != null) {
log.debug("SBS account exists");
@@ -144,6 +144,19 @@
log.debug("SBS account does NOT exist");
NukesUser nukesUser = nukesAccountManager.getAccountByUsername(username);
+ UserTemplate filter = new UserTemplate();
+ filter.setEmail(nukesUser.getEmail());
+
+ User userWithSameEmail = userManager.getUser(filter);
+ if (userWithSameEmail != null) {
+ log.debug("SBS account not exists but another account with same e-mail exists."
+ + " User is probably trying to log in via duplicate account.");
+ httpRequest.getSession().setAttribute(DuplicateAccountLoginAction.MASTER_ACCOUNT_KEY,
+ userWithSameEmail.getUsername());
+ sendRedirect(httpRequest, httpResponse, DUPLICATE_ACCOUNT_URL);
+ return;
+ }
+
List<NukesUser> dupliciteAccounts = nukesAccountManager.getNukesAccountsByEmail(nukesUser.getEmail());
// TODO: Check in production DB if we don't have SBS accounts without
// Nukes account
Added: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/DuplicateAccountLoginAction.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/DuplicateAccountLoginAction.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/DuplicateAccountLoginAction.java 2010-06-08 13:01:35 UTC (rev 33400)
@@ -0,0 +1,54 @@
+/*
+ * 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 com.jivesoftware.community.action.JiveActionSupport;
+
+/**
+ * Action shows page when user is trying to login via duplicate account.
+ *
+ * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ */
+public class DuplicateAccountLoginAction extends JiveActionSupport {
+
+ public static final String MASTER_ACCOUNT_KEY = "masterAccountUsername";
+
+ private Object masterUsername;
+
+ @Override
+ public String input() {
+ masterUsername = getRequest().getSession().getAttribute(MASTER_ACCOUNT_KEY);
+
+ if (masterUsername == null) {
+ return "homepage";
+ }
+
+ getRequest().getSession().removeAttribute(MASTER_ACCOUNT_KEY);
+
+ return INPUT;
+ }
+
+ public Object getMasterUsername() {
+ return masterUsername;
+ }
+
+}
Property changes on: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/DuplicateAccountLoginAction.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/plugin/resources/templates/duplicate-account-login.ftl
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/plugin/resources/templates/duplicate-account-login.ftl (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/plugin/resources/templates/duplicate-account-login.ftl 2010-06-08 13:01:35 UTC (rev 33400)
@@ -0,0 +1,37 @@
+<html>
+ <head>
+ <#assign title=action.getText('plugin.nukesauth.duplicateaccount.name') />
+ <title>${title}</title>
+ </head>
+ <body class="jive-body-formpage">
+
+<!-- BEGIN header & intro -->
+<div id="jive-body-intro">
+ <div id="jive-body-intro-content">
+ <h1>${title}</h1>
+ </div>
+</div>
+<!-- END header & intro -->
+<!-- BEGIN main body -->
+<div id="jive-body-main">
+
+ <!-- BEGIN main body column -->
+ <div id="jive-body-maincol-container">
+ <div id="jive-body-maincol">
+
+ <#include "/template/global/include/form-message.ftl" />
+
+ <p><@s.text name="plugin.nukesauth.duplicateaccount.description" /></p>
+ <p> </p>
+ <p><@s.text name="plugin.nukesauth.duplicateaccount.masteraccount" ><@s.param><@s.property value="masterUsername"/></@s.param></@s.text></p>
+ <p> </p>
+ <p><a href="/login.jspa"><@s.text name="plugin.nukesauth.masteraccount.name.created.loginlink" /></a></p>
+ </div>
+ </div>
+ <!-- END main body column -->
+
+
+</div>
+<!-- END main body -->
+ </body>
+</html>
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-06-08 12:06:13 UTC (rev 33399)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/plugin/struts.xml 2010-06-08 13:01:35 UTC (rev 33400)
@@ -26,6 +26,15 @@
<result name="authenticated" type="redirect">/</result>
<interceptor-ref name="paramsPrepareParamsStack" />
</action>
+
+ <action name="duplicate-account"
+ class="org.jboss.labs.sbs.plugin.nukesauth.struts.DuplicateAccountLoginAction"
+ method="input">
+ <result name="input" type="freemarker">
+ /plugins/nukesauthentication/resources/templates/duplicate-account-login.ftl
+ </result>
+ <result name="homepage" type="redirect">/</result>
+ </action>
</package>
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/resources/plugin_i18n.properties
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/resources/plugin_i18n.properties 2010-06-08 12:06:13 UTC (rev 33399)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/resources/plugin_i18n.properties 2010-06-08 13:01:35 UTC (rev 33400)
@@ -22,3 +22,9 @@
plugin.nukesauth.masteraccount.name.created=Master account created
plugin.nukesauth.masteraccount.name.created.description=Account has been successfuly created. Now you can login.
plugin.nukesauth.masteraccount.name.created.loginlink=Go to Login page
+
+
+# Login via duplicate account
+plugin.nukesauth.duplicateaccount.name=Duplicate account
+plugin.nukesauth.duplicateaccount.description=You are trying to log in via duplicate account. Please use your master account.
+plugin.nukesauth.duplicateaccount.masteraccount=Master account is {0}.
\ No newline at end of file
More information about the jboss-svn-commits
mailing list