You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2024/01/31 14:57:46 UTC

(james-project) branch master updated: JAMES-3909 Deleting userdata: Bypass user existence check (#1938)

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git


The following commit(s) were added to refs/heads/master by this push:
     new d910ab53e0 JAMES-3909 Deleting userdata: Bypass user existence check (#1938)
d910ab53e0 is described below

commit d910ab53e03727aed80595f44f72e2ea740697eb
Author: Benoit TELLIER <bt...@linagora.com>
AuthorDate: Wed Jan 31 15:57:40 2024 +0100

    JAMES-3909 Deleting userdata: Bypass user existence check (#1938)
---
 .../apache/james/webadmin/routes/DeleteUserDataRoutes.java    |  2 +-
 .../james/webadmin/routes/DeleteUserDataRoutesTest.java       | 11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DeleteUserDataRoutes.java b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DeleteUserDataRoutes.java
index f581ed7127..a82d417205 100644
--- a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DeleteUserDataRoutes.java
+++ b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DeleteUserDataRoutes.java
@@ -73,7 +73,7 @@ public class DeleteUserDataRoutes implements Routes {
             .register(DELETE_USER_DATA, request -> {
                 Username username = Username.of(request.params(USER_PATH_PARAM));
 
-                Preconditions.checkArgument(usersRepository.contains(username), "'username' parameter should be an existing user");
+                Preconditions.checkArgument(request.queryParams("force") != null || usersRepository.contains(username), "'username' parameter should be an existing user");
 
                 Optional<StepName> fromStep = Optional.ofNullable(request.queryParams("fromStep")).map(StepName::new);
 
diff --git a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DeleteUserDataRoutesTest.java b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DeleteUserDataRoutesTest.java
index f3939320e1..19823d8f58 100644
--- a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DeleteUserDataRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DeleteUserDataRoutesTest.java
@@ -184,6 +184,17 @@ class DeleteUserDataRoutesTest {
                 .body("message", Matchers.is("Invalid arguments supplied in the user request"))
                 .body("details", Matchers.is("'username' parameter should be an existing user"));
         }
+
+        @Test
+        void shouldAcceptUnknownUserWhenForce() {
+            given()
+                .queryParam("action", "deleteData")
+                .queryParam("force")
+            .when()
+                .post("/users/unknown@domain.tld")
+            .then()
+                .statusCode(HttpStatus.CREATED_201);
+        }
     }
 
     @Nested


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org