You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by mp...@apache.org on 2011/08/22 22:39:03 UTC

svn commit: r1160421 - in /incubator/rave/trunk/rave-portal/src: main/java/org/apache/rave/portal/model/ main/java/org/apache/rave/portal/repository/ main/java/org/apache/rave/portal/repository/impl/ main/java/org/apache/rave/portal/service/ main/java/...

Author: mpierce
Date: Mon Aug 22 20:39:03 2011
New Revision: 1160421

URL: http://svn.apache.org/viewvc?rev=1160421&view=rev
Log:
(RAVE-206) Allowing user object to be retrieved by email address.  Required changes to UserRepository, UserService, and their implementation classes. Also changed initial_data.sql to provide email for default canonical account for testing purposes.

Modified:
    incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/User.java
    incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/UserRepository.java
    incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaUserRepository.java
    incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/UserService.java
    incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java
    incubator/rave/trunk/rave-portal/src/main/resources/initial_data.sql
    incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/model/UserTest.java
    incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaUserRepositoryTest.java
    incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/service/UserServiceTest.java

Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/User.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/User.java?rev=1160421&r1=1160420&r2=1160421&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/User.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/User.java Mon Aug 22 20:39:03 2011
@@ -35,7 +35,8 @@ import java.util.Collection;
 @Table(name = "user")
 @SequenceGenerator(name = "userIdSeq", sequenceName = "user_id_seq")
 @NamedQueries({
-    @NamedQuery(name="User.getByUsername", query = "select u from User u where u.username = :username")
+    @NamedQuery(name="User.getByUsername", query = "select u from User u where u.username = :username"),
+    @NamedQuery(name="User.getByUserEmail", query = "select u from User u where u.email = :email")
 })
 public class User implements UserDetails, BasicEntity, Serializable {
     private static final long serialVersionUID = 1L;

Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/UserRepository.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/UserRepository.java?rev=1160421&r1=1160420&r2=1160421&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/UserRepository.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/UserRepository.java Mon Aug 22 20:39:03 2011
@@ -23,4 +23,5 @@ import org.apache.rave.portal.model.User
 
 public interface UserRepository extends Repository<User> {
     User getByUsername(String username);
+	 User getByUserEmail(String userEmail);
 }

Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaUserRepository.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaUserRepository.java?rev=1160421&r1=1160420&r2=1160421&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaUserRepository.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaUserRepository.java Mon Aug 22 20:39:03 2011
@@ -43,4 +43,11 @@ public class JpaUserRepository extends A
         query.setParameter("username", username);
         return getSingleResult(query.getResultList());
     }
+
+    @Override
+    public User getByUserEmail(String userEmail) {
+        TypedQuery<User> query = manager.createNamedQuery("User.getByUserEmail", User.class);
+        query.setParameter("email", userEmail);
+        return getSingleResult(query.getResultList());
+    }
 }

Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/UserService.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/UserService.java?rev=1160421&r1=1160420&r2=1160421&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/UserService.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/UserService.java Mon Aug 22 20:39:03 2011
@@ -59,6 +59,11 @@ public interface UserService extends Use
 	 User getUserById(Long id);
 
 	 /**
+	  * Return a user object by the user email.
+	  */
+	 User getUserByEmail(String userEmail);
+
+	 /**
 	  * Update the user profile information.
 	  * @param user the modified user object
 	  */

Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java?rev=1160421&r1=1160420&r2=1160421&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java Mon Aug 22 20:39:03 2011
@@ -58,7 +58,6 @@ public class DefaultUserService implemen
         if(user == null) {
             throw new UsernameNotFoundException("User with username '" + username + "' was not found!");
         }
-		  System.out.println("Can do anything else here too.");
         return user;
     }
 
@@ -126,6 +125,11 @@ public class DefaultUserService implemen
 	 }
 
 	 @Override
+	 public User getUserByEmail(String userEmail){
+		  return userRepository.getByUserEmail(userEmail);
+	 }
+
+	 @Override
 	 public void updateUserProfile(User user) {
 		  System.out.println("Updating user profile");
 	 }

Modified: incubator/rave/trunk/rave-portal/src/main/resources/initial_data.sql
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/resources/initial_data.sql?rev=1160421&r1=1160420&r2=1160421&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/resources/initial_data.sql (original)
+++ incubator/rave/trunk/rave-portal/src/main/resources/initial_data.sql Mon Aug 22 20:39:03 2011
@@ -16,44 +16,44 @@
  -- under the License.
 
 --  --- start user data ---
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_1, next value for user_id_seq), 'canonical', 'b97fd0fa25ba8a504309be2b6651ac6dee167ded', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_1, next value for user_id_seq), 'canonical', 'b97fd0fa25ba8a504309be2b6651ac6dee167ded', 'N', 'N', 'Y','canonical@test.com');
 
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_2, next value for user_id_seq), 'john.doe', '49e5f5c7c7ae8372af9b3063c493f080d16411f5', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_2, next value for user_id_seq), 'john.doe', '49e5f5c7c7ae8372af9b3063c493f080d16411f5', 'N', 'N', 'Y',' ');
 
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_3, next value for user_id_seq), 'jane.doe', '30dd37e81704bbbd4e235c22990802ae25b187da', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_3, next value for user_id_seq), 'jane.doe', '30dd37e81704bbbd4e235c22990802ae25b187da', 'N', 'N', 'Y',' ');
 
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_4, next value for user_id_seq), 'george.doe', '452802e3f2ff8b7b28785f50dfaaaaf80fc1430f', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_4, next value for user_id_seq), 'george.doe', '452802e3f2ff8b7b28785f50dfaaaaf80fc1430f', 'N', 'N', 'Y',' ');
 
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_5, next value for user_id_seq),'mario.rossi', '8aadae9f6e73a479cb8a565bcfa6e8de2b074e89', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_5, next value for user_id_seq),'mario.rossi', '8aadae9f6e73a479cb8a565bcfa6e8de2b074e89', 'N', 'N', 'Y',' ');
 
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_6, next value for user_id_seq), 'maija.m', '18550acca1b36af6cfa41c82e1caab12073475a1', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_6, next value for user_id_seq), 'maija.m', '18550acca1b36af6cfa41c82e1caab12073475a1', 'N', 'N', 'Y',' ');
 
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_6, next value for user_id_seq), 'http://rave2011.myopenid.com/', 'cdf15c184b7d2539b0cfc29ee9f10bad62793d50', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_6, next value for user_id_seq), 'http://rave2011.myopenid.com/', 'cdf15c184b7d2539b0cfc29ee9f10bad62793d50', 'N', 'N', 'Y',' ');
 
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_7, next value for user_id_seq), 'one.col', '07acee6193e84ba9ae2f7b2bf26538f2d6e4b0a1', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_7, next value for user_id_seq), 'one.col', '07acee6193e84ba9ae2f7b2bf26538f2d6e4b0a1', 'N', 'N', 'Y',' ');
 
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_8, next value for user_id_seq), 'twown.col', '24159ea43cbcecb50021cd14a1d41a8079fd9714', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_8, next value for user_id_seq), 'twown.col', '24159ea43cbcecb50021cd14a1d41a8079fd9714', 'N', 'N', 'Y',' ');
 
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_9, next value for user_id_seq), 'three.col', 'c736434430af90772bfd4351bffa3da04cec0403', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_9, next value for user_id_seq), 'three.col', 'c736434430af90772bfd4351bffa3da04cec0403', 'N', 'N', 'Y',' ');
 
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_10, next value for user_id_seq), 'threewn.col', 'ad67065a5bc25f86036508971a09a58e9c9131e8', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_10, next value for user_id_seq), 'threewn.col', 'ad67065a5bc25f86036508971a09a58e9c9131e8', 'N', 'N', 'Y',' ');
 
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_11, next value for user_id_seq), 'four.col', 'c875ce4416fc56cd34c01bd366a3af5468137155', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_11, next value for user_id_seq), 'four.col', 'c875ce4416fc56cd34c01bd366a3af5468137155', 'N', 'N', 'Y',' ');
 
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_12, next value for user_id_seq), 'fourwn.col', 'eb0b450eff79a33027a41a05051f5609a83667e8', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_12, next value for user_id_seq), 'fourwn.col', 'eb0b450eff79a33027a41a05051f5609a83667e8', 'N', 'N', 'Y',' ');
 --- end user data ---
 
 --- gadget data ---

Modified: incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/model/UserTest.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/model/UserTest.java?rev=1160421&r1=1160420&r2=1160421&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/model/UserTest.java (original)
+++ incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/model/UserTest.java Mon Aug 22 20:39:03 2011
@@ -68,6 +68,7 @@ public class UserTest {
 		user3=new User(id,userName);
 		user3.setExpired(user3Expired);
 		user3.setEnabled(user3Enabled);
+
 	}
 	
 	@Test
@@ -95,4 +96,5 @@ public class UserTest {
 		assertTrue("Account and credential nonexpirations handled correctly",user1.isAccountNonExpired() && user1.isCredentialsNonExpired());
 		assertTrue("Account and credential expirations handled correctly",!user2.isAccountNonExpired() && !user2.isCredentialsNonExpired());
 	}
+
 }

Modified: incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaUserRepositoryTest.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaUserRepositoryTest.java?rev=1160421&r1=1160420&r2=1160421&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaUserRepositoryTest.java (original)
+++ incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaUserRepositoryTest.java Mon Aug 22 20:39:03 2011
@@ -50,6 +50,7 @@ public class JpaUserRepositoryTest {
     //may need updating in the future.
     private static final String HASHED_SALTED_PASSWORD="b97fd0fa25ba8a504309be2b6651ac6dee167ded";
     private static final Long INVALID_USER = -2L;
+	 private static final String USER_EMAIL = "canonical@test.com";
 
     @Autowired
     private UserRepository repository;
@@ -61,12 +62,15 @@ public class JpaUserRepositoryTest {
         assertThat(user.getUsername(), is(equalTo(USER_NAME)));
         assertThat(user.getPassword(), is(equalTo(HASHED_SALTED_PASSWORD)));
         assertThat(user.isAccountNonExpired(), is(true));
+		  assertThat(user.getEmail(), is(equalTo(USER_EMAIL)));
     }
+
     @Test
     public void getById_invalidId() {
         User user = repository.get(INVALID_USER);
         assertThat(user, is(nullValue()));
     }
+
     @Test
     public void getByUsername_valid() {
         User user = repository.getByUsername(USER_NAME);
@@ -74,10 +78,22 @@ public class JpaUserRepositoryTest {
         assertThat(user.getId(), is(equalTo(USER_ID)));
         assertThat(user.getPassword(), is(equalTo(HASHED_SALTED_PASSWORD)));
         assertThat(user.isAccountNonExpired(), is(true));
+		  assertThat(user.getEmail(), is(equalTo(USER_EMAIL)));
     }
+
     @Test
     public void getByUsername_invalid() {
         User user = repository.get(INVALID_USER);
         assertThat(user, is(nullValue()));
     }
+
+    @Test
+    public void getByUserEmail_valid() {
+        User user = repository.getByUserEmail(USER_EMAIL);
+        assertThat(user, CoreMatchers.notNullValue());
+        assertThat(user.getId(), is(equalTo(USER_ID)));
+        assertThat(user.getPassword(), is(equalTo(HASHED_SALTED_PASSWORD)));
+        assertThat(user.isAccountNonExpired(), is(true));
+		  assertThat(user.getEmail(), is(equalTo(USER_EMAIL)));
+    }
 }

Modified: incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/service/UserServiceTest.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/service/UserServiceTest.java?rev=1160421&r1=1160420&r2=1160421&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/service/UserServiceTest.java (original)
+++ incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/service/UserServiceTest.java Mon Aug 22 20:39:03 2011
@@ -44,6 +44,7 @@ public class UserServiceTest {
     private UserService service;
     private UserRepository repository;
     private static final String USER_NAME = "1234";
+	 private static final String USER_EMAIL="test@test.com";
 
     @Before
     public void setup() {
@@ -139,6 +140,18 @@ public class UserServiceTest {
         service.setAuthenticatedUser(USER_ID);
     }
 
+	 @Test
+	 public void getUserByEmail_valid() {
+		  final User authUser=new User(USER_ID,USER_NAME);
+		  authUser.setEmail(USER_EMAIL);
+        expect(repository.getByUserEmail(USER_EMAIL)).andReturn(authUser).anyTimes();
+        replay(repository);
+
+        UserDetails result = service.getUserByEmail(USER_EMAIL);
+        assertThat((User)result, is(sameInstance(authUser)));		  
+	 }
+
+
     @Test
     public void clearAuthentication() {
         SecurityContext context = new SecurityContextImpl();