[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&userId=${targetUser.ID}</result>
+ </action>
+
</package>
</struts>
More information about the jboss-svn-commits
mailing list