{
+
+ @Override
+ protected Response.Status getStatus() {
+ return Response.Status.BAD_REQUEST;
+ }
+
+ @Override
+ protected ErrorDtos.ClientErrorDto getErrorDto(CurrentPasswordInvalidException e) {
+ return ErrorDtos.ClientErrorDto.newBuilder() //
+ .setCode(getStatus().getStatusCode()) //
+ .setMessageTemplate("server.error.password.current-invalid") //
+ .setMessage(e.getMessage()) //
+ .build();
+ }
+
+}
diff --git a/agate-rest/src/main/java/org/obiba/agate/web/rest/user/AbstractUserResource.java b/agate-rest/src/main/java/org/obiba/agate/web/rest/user/AbstractUserResource.java
index 85a3f704..0eee4877 100644
--- a/agate-rest/src/main/java/org/obiba/agate/web/rest/user/AbstractUserResource.java
+++ b/agate-rest/src/main/java/org/obiba/agate/web/rest/user/AbstractUserResource.java
@@ -50,8 +50,9 @@ public Agate.UserDto get() {
@PUT
@Path("/password")
- public Response updatePassword(@FormParam("password") String password) {
- userService.updateUserPassword(getUser(), password);
+ public Response updatePassword(@FormParam("password0") String password0, @FormParam("password") String password) {
+ // provide current user password and new password
+ userService.updateUserPassword(getUser(), password0, password);
return Response.noContent().build();
}
diff --git a/agate-webapp/src/main/resources/_templates/libs/profile-scripts.ftl b/agate-webapp/src/main/resources/_templates/libs/profile-scripts.ftl
index dd8786bf..ff353c1f 100644
--- a/agate-webapp/src/main/resources/_templates/libs/profile-scripts.ftl
+++ b/agate-webapp/src/main/resources/_templates/libs/profile-scripts.ftl
@@ -10,6 +10,7 @@
];
const errorMessages = {
+ 'server.error.password.current-invalid': "<@message "server.error.password.current-invalid"/>",
'server.error.password.not-changed': "<@message "server.error.password.not-changed"/>",
'server.error.password.too-weak': "<@message "server.error.password.too-weak"/>"
};
diff --git a/agate-webapp/src/main/resources/_templates/profile.ftl b/agate-webapp/src/main/resources/_templates/profile.ftl
index 04a32296..a267ee1f 100644
--- a/agate-webapp/src/main/resources/_templates/profile.ftl
+++ b/agate-webapp/src/main/resources/_templates/profile.ftl
@@ -117,6 +117,10 @@
<@message "password-no-match"/>
+
+ <@message "password-not-modified"/>
+
+
<@message "update-password-failed"/>
@@ -126,6 +130,14 @@