From 4425243f03c7acebd6a00901e3676734f675e3de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Mon, 29 Oct 2018 09:26:23 +0100 Subject: [PATCH] Adapt ChangePasswordNotAllowedException and mapper --- .../user/ChangePasswordNotAllowedException.java | 16 ++++++++++++---- .../ChangePasswordNotAllowedExceptionMapper.java | 14 +++++++------- .../java/sonia/scm/user/DefaultUserManager.java | 2 +- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/scm-core/src/main/java/sonia/scm/user/ChangePasswordNotAllowedException.java b/scm-core/src/main/java/sonia/scm/user/ChangePasswordNotAllowedException.java index fda5e69323..da0b1b0ba3 100644 --- a/scm-core/src/main/java/sonia/scm/user/ChangePasswordNotAllowedException.java +++ b/scm-core/src/main/java/sonia/scm/user/ChangePasswordNotAllowedException.java @@ -1,11 +1,19 @@ package sonia.scm.user; -public class ChangePasswordNotAllowedException extends RuntimeException { +import sonia.scm.ContextEntry; +import sonia.scm.ExceptionWithContext; - public static final String WRONG_USER_TYPE = "User of type %s are not allowed to change password"; +public class ChangePasswordNotAllowedException extends ExceptionWithContext { - public ChangePasswordNotAllowedException(String type) { - super(String.format(WRONG_USER_TYPE, type)); + private static final String CODE = "9BR7qpDAe1"; + public static final String WRONG_USER_TYPE = "User of given type are not allowed to change password"; + + public ChangePasswordNotAllowedException(ContextEntry.ContextBuilder context) { + super(context.build(), WRONG_USER_TYPE); } + @Override + public String getCode() { + return CODE; + } } diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/ChangePasswordNotAllowedExceptionMapper.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/ChangePasswordNotAllowedExceptionMapper.java index e9bb5304a5..18a6e6e75c 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/ChangePasswordNotAllowedExceptionMapper.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/ChangePasswordNotAllowedExceptionMapper.java @@ -1,17 +1,17 @@ package sonia.scm.api.v2.resources; +import sonia.scm.api.rest.ContextualExceptionMapper; import sonia.scm.user.ChangePasswordNotAllowedException; +import sonia.scm.user.InvalidPasswordException; +import javax.inject.Inject; import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; import javax.ws.rs.ext.Provider; @Provider -public class ChangePasswordNotAllowedExceptionMapper implements ExceptionMapper { - @Override - public Response toResponse(ChangePasswordNotAllowedException exception) { - return Response.status(Response.Status.BAD_REQUEST) - .entity(exception.getMessage()) - .build(); +public class ChangePasswordNotAllowedExceptionMapper extends ContextualExceptionMapper { + @Inject + public ChangePasswordNotAllowedExceptionMapper(ExceptionWithContextToErrorDtoMapper mapper) { + super(ChangePasswordNotAllowedException.class, Response.Status.BAD_REQUEST, mapper); } } diff --git a/scm-webapp/src/main/java/sonia/scm/user/DefaultUserManager.java b/scm-webapp/src/main/java/sonia/scm/user/DefaultUserManager.java index 41d2ed467f..19d6a8343b 100644 --- a/scm-webapp/src/main/java/sonia/scm/user/DefaultUserManager.java +++ b/scm-webapp/src/main/java/sonia/scm/user/DefaultUserManager.java @@ -422,7 +422,7 @@ public class DefaultUserManager extends AbstractUserManager throw new NotFoundException(User.class, userId); } if (!isTypeDefault(user)) { - throw new ChangePasswordNotAllowedException(user.getType()); + throw new ChangePasswordNotAllowedException(ContextEntry.ContextBuilder.entity("passwordChange", "-").in(User.class, user.getName())); } user.setPassword(newPassword); this.modify(user);