[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>&nbsp;</p>
+        <p><@s.text name="plugin.nukesauth.duplicateaccount.masteraccount" ><@s.param><@s.property value="masterUsername"/></@s.param></@s.text></p>
+        <p>&nbsp;</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