[jboss-svn-commits] JBL Code SVN: r36018 - in labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main: java/org/jboss/labs/sbs/plugin/nukesauth/listener and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Nov 22 09:58:42 EST 2010


Author: lkrzyzanek
Date: 2010-11-22 09:58:41 -0500 (Mon, 22 Nov 2010)
New Revision: 36018

Added:
   labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/EditJBossUserProfile.java
Modified:
   labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManager.java
   labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManagerImpl.java
   labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/listener/SyncUserWithNukesListener.java
   labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/NukesUserSearchAction.java
   labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/plugin/struts.xml
Log:
Implemented ORG-840

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManager.java	2010-11-22 14:36:15 UTC (rev 36017)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManager.java	2010-11-22 14:58:41 UTC (rev 36018)
@@ -76,6 +76,14 @@
   public void createNukesUser(User sbsUser);
 
   /**
+   * Create copy of nukes user
+   * 
+   * @param originalUsername
+   * @param targetUsername
+   */
+  public void createNukesUserCopy(String originalUsername, String targetUsername);
+
+  /**
    * Update nukes password
    * 
    * @param username

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManagerImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManagerImpl.java	2010-11-22 14:36:15 UTC (rev 36017)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManagerImpl.java	2010-11-22 14:58:41 UTC (rev 36018)
@@ -100,7 +100,15 @@
     }
     nukesUserDAO.createNukesUser(nukesUser);
   }
+  
+  @Override
+  public void createNukesUserCopy(String originalUsername, String targetUsername) {
+    NukesUser nukesUser = getAccountByUsername(originalUsername);
+    nukesUser.setUsername(targetUsername);
 
+    nukesUserDAO.createNukesUser(nukesUser);
+  }
+
   @Override
   public NukesUser getAccountByUsername(String username) {
     return nukesUserDAO.getNukesUser(username);

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/listener/SyncUserWithNukesListener.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/listener/SyncUserWithNukesListener.java	2010-11-22 14:36:15 UTC (rev 36017)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/listener/SyncUserWithNukesListener.java	2010-11-22 14:58:41 UTC (rev 36018)
@@ -28,6 +28,7 @@
 import org.apache.log4j.Logger;
 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.User;
 import com.jivesoftware.base.event.UserEvent;
@@ -87,6 +88,25 @@
       nukesAccountManager.updateNukesAccounts(user, duplicateUsernames);
     }
 
+    if (UserEvent.Type.MODIFIED_WAIT.compareTo(e.getType()) == 0) {
+      User user = e.getPayload();
+
+      if ("admin".equals(user.getUsername())) {
+        return;
+      }
+      Object username = e.getParams().get(UserEvent.USER_MODIFIED_USERNAME);
+      if (username != null) {
+        if (log.isInfoEnabled()) {
+          log.info("SBS username changed - let's create new nukes account. Username: " + username + " New username: "
+              + user.getUsername());
+        }
+        nukesAccountManager.createNukesUserCopy(username.toString(), user.getUsername());
+
+        List<NukesUser> duplicateAccounts = nukesAccountManager.getNukesAccountsByEmail(user.getEmail());
+        sbsAccountManager.setDuplicateAccounts(user, duplicateAccounts);
+      }
+    }
+
   }
 
   public void setNukesAccountManager(NukesAccountManager nukesAccountManager) {

Added: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/EditJBossUserProfile.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/EditJBossUserProfile.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/EditJBossUserProfile.java	2010-11-22 14:58:41 UTC (rev 36018)
@@ -0,0 +1,79 @@
+/*
+ * 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.dao.NukesUser;
+
+import com.jivesoftware.base.UserTemplate;
+import com.jivesoftware.community.JiveGlobals;
+import com.jivesoftware.community.action.admin.EditUserProfile;
+
+/**
+ * Action extends {@link EditUserProfile} action and provides validation on
+ * e-mail and validation on username against nukes.
+ * 
+ * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ */
+public class EditJBossUserProfile extends EditUserProfile {
+
+  private NukesAccountManager nukesAccountManager;
+
+  /**
+   * Add validation on @ character. User cannot put his e-mail.
+   */
+  @Override
+  protected boolean usernameInvalid(String username) {
+    return super.usernameInvalid(username) || !username.matches(CreateNewJBossUserAccountAction.ALLOWED_CHARS_REGEXP);
+  }
+  
+  @Override
+  public void validate() {
+    UserTemplate user = this.getTargetUser();
+    if (user.isSetEmailSupported() && JiveGlobals.getJiveBooleanProperty("skin.default.changeEmailEnabled", true)) {
+      if (!getEmail().equals(getTargetUser().getEmail())) {
+        List<NukesUser> nukesUser = nukesAccountManager.getNukesAccountsByEmail(getEmail());
+        if (!nukesUser.isEmpty()) {
+          addFieldError("email", getText("account.err.email_taken.text"));
+        }
+      }
+    }
+    if (user != null && user.getID() > 0) {
+      if (user.isSetUsernameSupported()) {
+        if (getUsername() != null && getUsername().length() > 0) {
+          if (nukesAccountManager.getAccountByUsername(getUsername()) != null) {
+            addFieldError("username", getText("account.err.username_taken.text"));
+          }
+        }
+      }
+    }
+
+    super.validate();
+  }
+
+  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/EditJBossUserProfile.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/NukesUserSearchAction.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/NukesUserSearchAction.java	2010-11-22 14:36:15 UTC (rev 36017)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/NukesUserSearchAction.java	2010-11-22 14:58:41 UTC (rev 36018)
@@ -51,7 +51,7 @@
     accounts = nukesAccountManager.getNukesAccountsByEmail(query);
 
     NukesUser account = nukesAccountManager.getAccountByUsername(query);
-    if (account != null) {
+    if (account != null && !accounts.contains(account.getUsername())) {
       accounts.add(account);
     }
     if (accounts.isEmpty()) {

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-11-22 14:36:15 UTC (rev 36017)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/plugin/struts.xml	2010-11-22 14:58:41 UTC (rev 36018)
@@ -1,11 +1,9 @@
 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
         "http://struts.apache.org/dtds/struts-2.0.dtd">
 <struts>
-  <package name="nukes-authentication-actions" namespace="/account"
-    extends="community-actions">
+  <package name="nukes-authentication-actions" namespace="/account" extends="community-actions">
 
-    <action name="choose-master-account"
-      class="org.jboss.labs.sbs.plugin.nukesauth.struts.ChooseMasterAccountAction"
+    <action name="choose-master-account" class="org.jboss.labs.sbs.plugin.nukesauth.struts.ChooseMasterAccountAction"
       method="input">
       <result name="input" type="freemarker">
         /plugins/nukesauthentication/resources/templates/choose-master-account.ftl
@@ -17,8 +15,7 @@
       <interceptor-ref name="paramsPrepareParamsStack" />
     </action>
 
-    <action name="master-account-created"
-      class="org.jboss.labs.sbs.plugin.nukesauth.struts.ChooseMasterAccountAction"
+    <action name="master-account-created" class="org.jboss.labs.sbs.plugin.nukesauth.struts.ChooseMasterAccountAction"
       method="accountCreated">
       <result name="accountCreated" type="freemarker">
         /plugins/nukesauthentication/resources/templates/choose-master-account-success.ftl
@@ -27,8 +24,7 @@
       <interceptor-ref name="paramsPrepareParamsStack" />
     </action>
 
-    <action name="update-master-account"
-      class="org.jboss.labs.sbs.plugin.nukesauth.struts.UpdateMasterAccountAction"
+    <action name="update-master-account" class="org.jboss.labs.sbs.plugin.nukesauth.struts.UpdateMasterAccountAction"
       method="input">
       <result name="input" type="freemarker">
         /plugins/nukesauthentication/resources/templates/update-master-account.ftl
@@ -40,8 +36,7 @@
       <interceptor-ref name="paramsPrepareParamsStack" />
     </action>
 
-    <action name="master-account-updated"
-      class="org.jboss.labs.sbs.plugin.nukesauth.struts.UpdateMasterAccountAction"
+    <action name="master-account-updated" class="org.jboss.labs.sbs.plugin.nukesauth.struts.UpdateMasterAccountAction"
       method="accountUpdated">
       <result name="accountUpdated" type="freemarker">
         /plugins/nukesauthentication/resources/templates/update-master-account-success.ftl
@@ -49,8 +44,7 @@
       <interceptor-ref name="paramsPrepareParamsStack" />
     </action>
 
-    <action name="duplicate-account"
-      class="org.jboss.labs.sbs.plugin.nukesauth.struts.DuplicateAccountLoginAction"
+    <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
@@ -58,8 +52,7 @@
       <result name="homepage" type="redirect">/</result>
     </action>
 
-    <action name="emailPasswordJBossToken"
-      class="org.jboss.labs.sbs.plugin.nukesauth.struts.EmailResetJBossPasswordToken"
+    <action name="emailPasswordJBossToken" class="org.jboss.labs.sbs.plugin.nukesauth.struts.EmailResetJBossPasswordToken"
       method="execute">
       <result name="cancel" type="redirect">login!input.jspa</result>
       <result name="input">/template/global/email-password.ftl</result>
@@ -67,15 +60,13 @@
       <result name="error">/template/global/email-password.ftl</result>
     </action>
 
-    <action name="resetJBossPassword"
-      class="org.jboss.labs.sbs.plugin.nukesauth.struts.ResetJBossPasswordAction">
+    <action name="resetJBossPassword" class="org.jboss.labs.sbs.plugin.nukesauth.struts.ResetJBossPasswordAction">
       <result name="cancel" type="redirect">index.jspa</result>
       <result name="input">/template/global/reset-password.ftl</result>
       <result name="success">/template/global/reset-password.ftl</result>
     </action>
 
-    <action name="forgot-jboss-username"
-      class="org.jboss.labs.sbs.plugin.nukesauth.struts.ForgotJBossUsernameAction">
+    <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>
@@ -83,8 +74,7 @@
     </action>
 
 
-    <action name="edit-jboss-profile"
-      class="org.jboss.labs.sbs.plugin.nukesauth.struts.EditJBossProfile">
+    <action name="edit-jboss-profile" class="org.jboss.labs.sbs.plugin.nukesauth.struts.EditJBossProfile">
       <interceptor-ref name="paramsPrepareParamsStack" />
       <interceptor-ref name="token">
         <param name="excludeMethods">input,cancel</param>
@@ -95,8 +85,7 @@
     </action>
 
     <!-- Based on spring-community.xml:1011 -->
-    <action name="create-jboss-account"
-      class="org.jboss.labs.sbs.plugin.nukesauth.struts.CreateNewJBossUserAccountAction"
+    <action name="create-jboss-account" class="org.jboss.labs.sbs.plugin.nukesauth.struts.CreateNewJBossUserAccountAction"
       method="input">
       <result name="unavailable">/template/global/registration-unavailable.ftl
       </result>
@@ -112,11 +101,9 @@
 
   </package>
 
-  <package name="nukes-authentication-actions-admin" namespace="/admin"
-    extends="community-admin-default">
+  <package name="nukes-authentication-actions-admin" namespace="/admin" extends="community-admin-default">
 
-    <action name="nukes-user-search"
-      class="org.jboss.labs.sbs.plugin.nukesauth.struts.NukesUserSearchAction">
+    <action name="nukes-user-search" class="org.jboss.labs.sbs.plugin.nukesauth.struts.NukesUserSearchAction">
       <result name="input" type="freemarker">
         /plugins/nukesauthentication/resources/templates/admin/nukes-user-search.ftl
       </result>
@@ -124,6 +111,18 @@
         /plugins/nukesauthentication/resources/templates/admin/nukes-user-search.ftl
       </result>
     </action>
+
+    <!-- Based on spring-community-admin.xml:290 -->
+    <action name="editJBossUserProfile" class="org.jboss.labs.sbs.plugin.nukesauth.struts.EditJBossUserProfile">
+      <interceptor-ref name="paramsPrepareParamsStack" />
+      <interceptor-ref name="token">
+        <param name="excludeMethods">input, cancel</param>
+      </interceptor-ref>
+      <result name="input" type="freemarker">/template/global/admin/edit-user-profile.ftl</result>
+      <result name="cancel" type="redirect">editUserProfile!input.jspa?userId=${targetUser.ID}</result>
+      <result name="success" type="redirect">editUserProfile!input.jspa?success=true&amp;userId=${targetUser.ID}</result>
+    </action>
+
   </package>
 
 </struts>



More information about the jboss-svn-commits mailing list