Author: olamy
Date: Fri May 25 12:32:07 2012
New Revision: 1342592

URL: http://svn.apache.org/viewvc?rev=1342592&view=rev
Log:
change signature to be able to pass the application url

Modified:
    archiva/redback/redback-core/trunk/pom.xml
    
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/services/UserService.java
    
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/pom.xml
    
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/DefaultUserService.java
    
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/UserServiceTest.java

Modified: archiva/redback/redback-core/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/pom.xml?rev=1342592&r1=1342591&r2=1342592&view=diff
==============================================================================
--- archiva/redback/redback-core/trunk/pom.xml (original)
+++ archiva/redback/redback-core/trunk/pom.xml Fri May 25 12:32:07 2012
@@ -765,6 +765,12 @@
         <artifactId>xmlunit</artifactId>
         <version>1.3</version>
       </dependency>
+      <dependency>
+        <groupId>org.easytesting</groupId>
+        <artifactId>fest-assert</artifactId>
+        <version>1.4</version>
+        <scope>test</scope>
+      </dependency>
     </dependencies>
   </dependencyManagement>
   <dependencies>

Modified: 
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/services/UserService.java
URL: 
http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/services/UserService.java?rev=1342592&r1=1342591&r2=1342592&view=diff
==============================================================================
--- 
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/services/UserService.java
 (original)
+++ 
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/services/UserService.java
 Fri May 25 12:32:07 2012
@@ -25,6 +25,7 @@ import org.apache.archiva.redback.rest.a
 import org.apache.archiva.redback.rest.api.model.Permission;
 import org.apache.archiva.redback.rest.api.model.RegistrationKey;
 import org.apache.archiva.redback.rest.api.model.User;
+import org.apache.archiva.redback.rest.api.model.UserRegistrationRequest;
 
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
@@ -180,13 +181,13 @@ public interface UserService
 
     @Path( "registerUser" )
     @POST
-    @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, 
MediaType.TEXT_PLAIN } )
+    @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
     @RedbackAuthorization( noRestriction = true, noPermission = true )
     /**
      * if redback is not configured for email validation is required, -1 is 
returned as key
      * @since 1.4
      */
-    RegistrationKey registerUser( User user )
+    RegistrationKey registerUser( UserRegistrationRequest 
userRegistrationRequest )
         throws RedbackServiceException;
 
 

Modified: 
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/pom.xml
URL: 
http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/pom.xml?rev=1342592&r1=1342591&r2=1342592&view=diff
==============================================================================
--- 
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/pom.xml
 (original)
+++ 
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/pom.xml
 Fri May 25 12:32:07 2012
@@ -190,6 +190,12 @@
       <scope>test</scope>
     </dependency>
 
+    <dependency>
+      <groupId>org.easytesting</groupId>
+      <artifactId>fest-assert</artifactId>
+      <scope>test</scope>
+    </dependency>
+
   </dependencies>
 
   <build>

Modified: 
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/DefaultUserService.java
URL: 
http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/DefaultUserService.java?rev=1342592&r1=1342591&r2=1342592&view=diff
==============================================================================
--- 
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/DefaultUserService.java
 (original)
+++ 
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/DefaultUserService.java
 Fri May 25 12:32:07 2012
@@ -20,40 +20,41 @@ package org.apache.archiva.redback.rest.
  */
 
 import net.sf.ehcache.CacheManager;
+import org.apache.archiva.redback.authentication.AuthenticationException;
+import 
org.apache.archiva.redback.authentication.TokenBasedAuthenticationDataSource;
 import org.apache.archiva.redback.components.cache.Cache;
 import org.apache.archiva.redback.configuration.UserConfiguration;
+import 
org.apache.archiva.redback.integration.filter.authentication.HttpAuthenticator;
+import org.apache.archiva.redback.integration.mail.Mailer;
+import 
org.apache.archiva.redback.integration.security.role.RedbackRoleConstants;
 import org.apache.archiva.redback.keys.AuthenticationKey;
-import org.apache.archiva.redback.policy.AccountLockedException;
-import org.apache.archiva.redback.policy.MustChangePasswordException;
-import org.apache.archiva.redback.rbac.RbacManagerException;
-import org.apache.archiva.redback.rbac.UserAssignment;
-import org.apache.archiva.redback.role.RoleManager;
-import org.apache.archiva.redback.role.RoleManagerException;
-import org.apache.archiva.redback.users.UserManager;
-import org.apache.archiva.redback.users.UserNotFoundException;
-import org.apache.commons.lang.StringUtils;
-import org.apache.archiva.redback.authentication.AuthenticationException;
-import 
org.apache.archiva.redback.authentication.TokenBasedAuthenticationDataSource;
 import org.apache.archiva.redback.keys.KeyManager;
 import org.apache.archiva.redback.keys.KeyManagerException;
 import org.apache.archiva.redback.keys.KeyNotFoundException;
+import org.apache.archiva.redback.policy.AccountLockedException;
+import org.apache.archiva.redback.policy.MustChangePasswordException;
 import org.apache.archiva.redback.policy.PasswordEncoder;
 import org.apache.archiva.redback.policy.UserSecurityPolicy;
 import org.apache.archiva.redback.rbac.RBACManager;
+import org.apache.archiva.redback.rbac.RbacManagerException;
 import org.apache.archiva.redback.rbac.RbacObjectNotFoundException;
-import org.apache.archiva.redback.system.SecuritySystem;
-import 
org.apache.archiva.redback.integration.filter.authentication.HttpAuthenticator;
-import org.apache.archiva.redback.integration.mail.Mailer;
-import 
org.apache.archiva.redback.integration.security.role.RedbackRoleConstants;
+import org.apache.archiva.redback.rbac.UserAssignment;
 import org.apache.archiva.redback.rest.api.model.ErrorMessage;
 import org.apache.archiva.redback.rest.api.model.Operation;
 import org.apache.archiva.redback.rest.api.model.Permission;
 import org.apache.archiva.redback.rest.api.model.RegistrationKey;
 import org.apache.archiva.redback.rest.api.model.Resource;
 import org.apache.archiva.redback.rest.api.model.User;
+import org.apache.archiva.redback.rest.api.model.UserRegistrationRequest;
 import org.apache.archiva.redback.rest.api.services.RedbackServiceException;
 import org.apache.archiva.redback.rest.api.services.UserService;
 import org.apache.archiva.redback.rest.services.utils.PasswordValidator;
+import org.apache.archiva.redback.role.RoleManager;
+import org.apache.archiva.redback.role.RoleManagerException;
+import org.apache.archiva.redback.system.SecuritySystem;
+import org.apache.archiva.redback.users.UserManager;
+import org.apache.archiva.redback.users.UserNotFoundException;
+import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
@@ -537,9 +538,10 @@ public class DefaultUserService
         return Boolean.TRUE;
     }
 
-    public RegistrationKey registerUser( User user )
+    public RegistrationKey registerUser( UserRegistrationRequest 
userRegistrationRequest )
         throws RedbackServiceException
     {
+        User user = userRegistrationRequest.getUser();
         if ( user == null )
         {
             throw new RedbackServiceException( new ErrorMessage( 
"invalid.user.credentials", null ) );
@@ -593,7 +595,13 @@ public class DefaultUserService
                     securitySystem.getKeyManager().createKey( 
u.getPrincipal().toString(), "New User Email Validation",
                                                               
securityPolicy.getUserValidationSettings().getEmailValidationTimeout() );
 
-                mailer.sendAccountValidationEmail( Arrays.asList( u.getEmail() 
), authkey, getBaseUrl() );
+                String baseUrl = userRegistrationRequest.getApplicationUrl();
+                if ( StringUtils.isBlank( baseUrl ) )
+                {
+                    baseUrl = getBaseUrl();
+                }
+
+                mailer.sendAccountValidationEmail( Arrays.asList( u.getEmail() 
), authkey, baseUrl );
 
                 securityPolicy.setEnabled( false );
                 userManager.addUser( u );

Modified: 
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/UserServiceTest.java
URL: 
http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/UserServiceTest.java?rev=1342592&r1=1342591&r2=1342592&view=diff
==============================================================================
--- 
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/UserServiceTest.java
 (original)
+++ 
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/UserServiceTest.java
 Fri May 25 12:32:07 2012
@@ -19,16 +19,17 @@ package org.apache.archiva.redback.rest.
  * under the License.
  */
 
-import org.apache.cxf.jaxrs.client.JAXRSClientFactory;
-import org.apache.cxf.jaxrs.client.ServerWebApplicationException;
-import org.apache.cxf.jaxrs.client.WebClient;
-import org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider;
 import org.apache.archiva.redback.rest.api.model.Operation;
 import org.apache.archiva.redback.rest.api.model.Permission;
 import org.apache.archiva.redback.rest.api.model.User;
+import org.apache.archiva.redback.rest.api.model.UserRegistrationRequest;
 import org.apache.archiva.redback.rest.api.services.UserService;
 import org.apache.archiva.redback.rest.services.mock.EmailMessage;
 import org.apache.archiva.redback.rest.services.mock.ServicesAssert;
+import org.apache.cxf.jaxrs.client.JAXRSClientFactory;
+import org.apache.cxf.jaxrs.client.ServerWebApplicationException;
+import org.apache.cxf.jaxrs.client.WebClient;
+import org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider;
 import org.junit.Test;
 
 import javax.ws.rs.core.MediaType;
@@ -36,6 +37,8 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 
+import static org.fest.assertions.Assertions.assertThat;
+
 /**
  * @author Olivier Lamy
  */
@@ -130,7 +133,7 @@ public class UserServiceTest
             u.setEmail( "[email protected]" );
             u.setPassword( "toto123" );
             u.setConfirmPassword( "toto123" );
-            String key = service.registerUser( u ).getKey();
+            String key = service.registerUser( new UserRegistrationRequest( u, 
"http://wine.fr/bordeaux"; ) ).getKey();
 
             assertFalse( key.equals( "-1" ) );
 
@@ -144,8 +147,12 @@ public class UserServiceTest
             assertEquals( "[email protected]", emailMessages.get( 0 ).getTos().get( 
0 ) );
 
             assertEquals( "Welcome", emailMessages.get( 0 ).getSubject() );
-            assertTrue(
-                emailMessages.get( 0 ).getText().contains( "Use the following 
URL to validate your account." ) );
+            String messageContent = emailMessages.get( 0 ).getText();
+
+            log.info( "messageContent: {}", messageContent );
+
+            assertThat( messageContent ).contains( "Use the following URL to 
validate your account." ).contains(
+                "http://wine.fr/bordeaux"; ).containsIgnoringCase( "toto" );
 
             assertTrue( service.validateUserFromKey( key ) );
 
@@ -185,7 +192,7 @@ public class UserServiceTest
             u.setEmail( "[email protected]" );
             u.setPassword( "toto123" );
             u.setConfirmPassword( "toto123" );
-            String key = service.registerUser( u ).getKey();
+            String key = service.registerUser( new UserRegistrationRequest( u, 
"http://wine.fr/bordeaux"; ) ).getKey();
 
             assertFalse( key.equals( "-1" ) );
 


Reply via email to