You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by ja...@apache.org on 2011/08/29 13:27:45 UTC

svn commit: r1162747 - /incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultNewAccountService.java

Author: jasha
Date: Mon Aug 29 11:27:45 2011
New Revision: 1162747

URL: http://svn.apache.org/viewvc?rev=1162747&view=rev
Log:
RAVE-37 make email address a required field in the registration process (for future 'forgot password' functionality)

Modified:
    incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultNewAccountService.java

Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultNewAccountService.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultNewAccountService.java?rev=1162747&r1=1162746&r2=1162747&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultNewAccountService.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultNewAccountService.java Mon Aug 29 11:27:45 2011
@@ -19,12 +19,7 @@
 
 package org.apache.rave.portal.service.impl;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.rave.portal.model.Page;
-import org.apache.rave.portal.model.PageLayout;
-import org.apache.rave.portal.model.Region;
+import org.apache.rave.portal.model.NewUser;
 import org.apache.rave.portal.model.User;
 import org.apache.rave.portal.service.NewAccountService;
 import org.apache.rave.portal.service.PageLayoutService;
@@ -45,6 +40,7 @@ public class DefaultNewAccountService im
 
     private final UserService userService;
     private final PageService pageService;
+    // TODO why are these unused PageLayoutService and RegionService declared?
     private final PageLayoutService pageLayoutService;
     private final RegionService regionService;
 
@@ -63,18 +59,21 @@ public class DefaultNewAccountService im
     }
 
     @Override
-    public void createNewAccount(String userName, String password, String userPageLayout) throws Exception {
-        final User existingUser = userService.getUserByUsername(userName);
-        if (existingUser != null) {
-            throw new IllegalArgumentException("A user already exists for username " + userName);
-        }
-        
+    public void createNewAccount(NewUser newUser) throws Exception {
+        final String userName = newUser.getUsername();
+        final String password = newUser.getPassword();
+        final String userPageLayout = newUser.getPageLayout();
+        final String email = newUser.getEmail();
+
+        throwExceptionIfUserExists(userName, email);
+                
         User user=new User();
         user.setUsername(userName);
+        user.setEmail(email);
         //This assumes we use the username for the salt.  If not, the code below will need to change.
         //See also applicationContext-security.xml
         String saltedHashedPassword=passwordEncoder.encodePassword(password,saltSource.getSalt(user));
-		  logger.debug("Salt Source: {}", saltSource.getSalt(user));
+        logger.debug("Salt Source: {}", saltSource.getSalt(user));
         user.setPassword(saltedHashedPassword);
 
         user.setExpired(false);
@@ -84,5 +83,16 @@ public class DefaultNewAccountService im
 
         // Return the newly registered user and create a new default page for them	  
         pageService.addNewDefaultPage(userService.getUserByUsername(user.getUsername()), userPageLayout);		  
-    }	 
+    }
+
+    private void throwExceptionIfUserExists(String userName, String email) {
+        User existingUser = userService.getUserByUsername(userName);
+        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);
+        }
+    }
 }
\ No newline at end of file