Author: olamy
Date: Fri May 25 14:38:09 2012
New Revision: 1342645

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

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
    
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/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=1342645&r1=1342644&r2=1342645&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 14:38:09 2012
@@ -24,6 +24,7 @@ import org.apache.archiva.redback.integr
 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.ResetPasswordRequest;
 import org.apache.archiva.redback.rest.api.model.User;
 import org.apache.archiva.redback.rest.api.model.UserRegistrationRequest;
 
@@ -204,16 +205,17 @@ public interface UserService
     Boolean validateUserFromKey( @PathParam( "key" ) String key )
         throws RedbackServiceException;
 
-    @Path( "resetPassword/{user}" )
-    @GET
+    @Path( "resetPassword" )
+    @POST
     @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, 
MediaType.TEXT_PLAIN } )
+    @Consumes( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
     @RedbackAuthorization( noRestriction = true, noPermission = true )
     /**
      *
      * @param user username for send a password reset email
      * @since 1.4
      */
-    Boolean resetPassword( @PathParam( "user" ) String user )
+    Boolean resetPassword( ResetPasswordRequest resetPasswordRequest )
         throws RedbackServiceException;
 
     @Path( "getUserPermissions/{userName}" )

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=1342645&r1=1342644&r2=1342645&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 14:38:09 2012
@@ -43,6 +43,7 @@ import org.apache.archiva.redback.rest.a
 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.ResetPasswordRequest;
 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;
@@ -501,9 +502,10 @@ public class DefaultUserService
         return Boolean.FALSE;
     }
 
-    public Boolean resetPassword( String username )
+    public Boolean resetPassword( ResetPasswordRequest resetPasswordRequest )
         throws RedbackServiceException
     {
+        String username = resetPasswordRequest.getUsername();
         if ( StringUtils.isEmpty( username ) )
         {
             throw new RedbackServiceException( new ErrorMessage( 
"username.cannot.be.empty" ) );
@@ -520,8 +522,13 @@ public class DefaultUserService
             AuthenticationKey authkey = keyManager.createKey( username, 
"Password Reset Request",
                                                               
policy.getUserValidationSettings().getEmailValidationTimeout() );
 
-            mailer.sendPasswordResetEmail( Arrays.asList( user.getEmail() ), 
authkey, getBaseUrl() );
+            String applicationUrl = resetPasswordRequest.getApplicationUrl();
+            if ( StringUtils.isBlank( applicationUrl ) )
+            {
+                applicationUrl = getBaseUrl();
+            }
 
+            mailer.sendPasswordResetEmail( Arrays.asList( user.getEmail() ), 
authkey, applicationUrl );
             log.info( "password reset request for username {}", username );
         }
         catch ( UserNotFoundException e )

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=1342645&r1=1342644&r2=1342645&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 14:38:09 2012
@@ -21,6 +21,7 @@ package org.apache.archiva.redback.rest.
 
 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.ResetPasswordRequest;
 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;
@@ -283,14 +284,16 @@ public class UserServiceTest
 
             assertTrue( service.validateUserFromKey( key ) );
 
-            assertTrue( service.resetPassword( "toto" ) );
+            assertTrue( service.resetPassword( new ResetPasswordRequest( 
"toto", "http://foo.fr/bar"; ) ) );
 
             emailMessages = assertService.getEmailMessageSended();
             assertEquals( 2, emailMessages.size() );
             assertEquals( "[email protected]", emailMessages.get( 1 ).getTos().get( 
0 ) );
 
-            assertTrue( emailMessages.get( 1 ).getText().contains( "Password 
Reset" ) );
-            assertTrue( emailMessages.get( 1 ).getText().contains( "Username: 
toto" ) );
+            String messageContent = emailMessages.get( 1 ).getText();
+
+            assertThat( messageContent ).contains( "Password Reset" 
).contains( "Username: toto" ).contains(
+                "http://foo.fr/bar"; );
 
 
         }


Reply via email to