You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by jc...@apache.org on 2012/01/11 19:08:39 UTC
svn commit: r1230171 - in
/incubator/rave/trunk/rave-components/rave-core/src:
main/java/org/apache/rave/portal/service/impl/DefaultNewAccountService.java
test/java/org/apache/rave/portal/service/impl/DefaultNewAccountServiceTest.java
Author: jcian
Date: Wed Jan 11 18:08:39 2012
New Revision: 1230171
URL: http://svn.apache.org/viewvc?rev=1230171&view=rev
Log:
RAVE-420 - NewAccountService should allow for creating new accounts which do not include an email
Modified:
incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultNewAccountService.java
incubator/rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultNewAccountServiceTest.java
Modified: incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultNewAccountService.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultNewAccountService.java?rev=1230171&r1=1230170&r2=1230171&view=diff
==============================================================================
--- incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultNewAccountService.java (original)
+++ incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultNewAccountService.java Wed Jan 11 18:08:39 2012
@@ -19,6 +19,7 @@
package org.apache.rave.portal.service.impl;
+import org.apache.commons.lang.StringUtils;
import org.apache.rave.portal.model.NewUser;
import org.apache.rave.portal.model.User;
import org.apache.rave.portal.service.AuthorityService;
@@ -90,9 +91,16 @@ public class DefaultNewAccountService im
if (existingUser != null) {
throw new IllegalArgumentException("A user already exists for username " + userName);
}
- existingUser = userService.getUserByEmail(email);
- if (existingUser != null) {
- throw new IllegalArgumentException("A user already exists for email " + email);
+
+ //Implementors who use an alternative store for profile data probably wont be including email when creating new
+ //Rave accounts -- they will likely only be setting username to create a stub entry in the database just so they
+ //have something to tie the rest of the Rave entities to. All the other profile data (like email) will be looked
+ //up elsewhere.
+ if (StringUtils.isNotEmpty(email)) {
+ existingUser = userService.getUserByEmail(email);
+ if (existingUser != null) {
+ throw new IllegalArgumentException("A user already exists for email " + email);
+ }
}
}
}
\ No newline at end of file
Modified: incubator/rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultNewAccountServiceTest.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultNewAccountServiceTest.java?rev=1230171&r1=1230170&r2=1230171&view=diff
==============================================================================
--- incubator/rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultNewAccountServiceTest.java (original)
+++ incubator/rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultNewAccountServiceTest.java Wed Jan 11 18:08:39 2012
@@ -113,10 +113,8 @@ public class DefaultNewAccountServiceTes
expectedUser.setExpired(false);
expectedUser.setLocked(false);
expectedUser.setEnabled(true);
-
ReflectionTestUtils.setField(newAccountService, "passwordEncoder", passwordEncoder);
-
expect(passwordEncoder.encode("valid.password")).andReturn("valid.password");
expect(userService.getUserByUsername(VALID_USER)).andReturn(null);
@@ -133,6 +131,40 @@ public class DefaultNewAccountServiceTes
}
@Test
+ public void createNewAccountTest_blankEmail() throws Exception {
+ NewUser newUser = new NewUser();
+ newUser.setUsername(VALID_USER);
+ newUser.setPassword(VALID_PASSWORD);
+ newUser.setConfirmPassword(VALID_PASSWORD);
+ newUser.setEmail("");
+ newUser.setPageLayout(VALID_LAYOUT_CODE);
+
+ User expectedUser = new User();
+ expectedUser.setUsername(newUser.getUsername());
+ expectedUser.setPassword(newUser.getPassword());
+ expectedUser.setEmail(newUser.getEmail());
+ expectedUser.setDefaultPageLayout(validPageLayout);
+ expectedUser.setExpired(false);
+ expectedUser.setLocked(false);
+ expectedUser.setEnabled(true);
+
+ ReflectionTestUtils.setField(newAccountService, "passwordEncoder", passwordEncoder);
+
+ expect(passwordEncoder.encode("valid.password")).andReturn("valid.password");
+ expect(userService.getUserByUsername(VALID_USER)).andReturn(null);
+ //if the email is blank getUserByEmail should not be called so dont expect it
+ expect(pageLayoutService.getPageLayoutByCode(VALID_LAYOUT_CODE)).andReturn(validPageLayout);
+ expect(authorityService.getDefaultAuthorities()).andReturn(validAuthoritySearchResult);
+ userService.registerNewUser(expectedUser);
+ expectLastCall();
+ replay(userDetails, passwordEncoder, userService, pageLayoutService, authorityService);
+
+ newAccountService.createNewAccount(newUser);
+
+ verify(userDetails, passwordEncoder, userService, pageLayoutService);
+ }
+
+ @Test
public void failedAccountCreationTest_duplicateUsername() throws Exception {
String duplicateUserName = "duplicateUserName";
NewUser newUser = new NewUser();
@@ -172,5 +204,4 @@ public class DefaultNewAccountServiceTes
}
}
-
}
\ No newline at end of file