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 2022/11/21 03:39:12 UTC

[james-project] 02/03: JAMES-3756 Relax delegation

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

commit 0d8d072b77acf2b65ea0a68c5ca64e59da45906f
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Fri Nov 4 13:46:57 2022 +0700

    JAMES-3756 Relax delegation
    
    The origin user no longer need to exist.
    
    Relaxing this constraints allows for "virtual users" with no
    associated mailboxes, only able to access a given mailbox.
    Authentication needs to be handled via external means (OIDC,
    client certificates)
---
 .../java/org/apache/james/webadmin/routes/UserRoutes.java  | 12 ------------
 .../org/apache/james/webadmin/routes/UserRoutesTest.java   | 14 ++++----------
 2 files changed, 4 insertions(+), 22 deletions(-)

diff --git a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/UserRoutes.java b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/UserRoutes.java
index 61b7fff33b..d76188f99d 100644
--- a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/UserRoutes.java
+++ b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/UserRoutes.java
@@ -317,12 +317,6 @@ public class UserRoutes implements Routes {
                     .type(ErrorType.NOT_FOUND)
                     .message(String.format("User '%s' does not exist", baseUser.asString()))
                     .haltError();
-            } else if (!userService.userExists(delegatedUser)) {
-                throw ErrorResponder.builder()
-                    .statusCode(HttpStatus.BAD_REQUEST_400)
-                    .type(ErrorType.INVALID_ARGUMENT)
-                    .message(String.format("Delegated user '%s' does not exist", delegatedUser.asString()))
-                    .haltError();
             } else {
                 Mono.from(delegationStore
                     .addAuthorizedUser(delegatedUser)
@@ -351,12 +345,6 @@ public class UserRoutes implements Routes {
                     .type(ErrorType.NOT_FOUND)
                     .message(String.format("User '%s' does not exist", baseUser.asString()))
                     .haltError();
-            } else if (!userService.userExists(delegatedUser)) {
-                throw ErrorResponder.builder()
-                    .statusCode(HttpStatus.BAD_REQUEST_400)
-                    .type(ErrorType.INVALID_ARGUMENT)
-                    .message(String.format("Delegated user '%s' does not exist", delegatedUser.asString()))
-                    .haltError();
             } else {
                 Mono.from(delegationStore.removeAuthorizedUser(delegatedUser)
                     .forUser(baseUser))
diff --git a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/UserRoutesTest.java b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/UserRoutesTest.java
index ffed30a326..ff66fd14db 100644
--- a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/UserRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/UserRoutesTest.java
@@ -262,16 +262,13 @@ class UserRoutesTest {
             }
 
             @Test
-            default void addDelegatedUserShouldReturn400BadRequestWhenDelegatedUserIsNotExisted(UsersRepository usersRepository) throws UsersRepositoryException {
+            default void addDelegatedUserShouldReturnOkWhenDelegatedUserIsNotExisted(UsersRepository usersRepository) throws UsersRepositoryException {
                 when(usersRepository.contains(ALICE)).thenReturn(true);
 
                 when()
                     .put(String.format(ADD_DELEGATED_USER_PATH, ALICE.asString(), BOB.asString()))
                 .then()
-                    .statusCode(HttpStatus.BAD_REQUEST_400)
-                    .body("statusCode", is(HttpStatus.BAD_REQUEST_400))
-                    .body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType()))
-                    .body("message", is(String.format("Delegated user '%s' does not exist", BOB.asString())));
+                    .statusCode(HttpStatus.OK_200);
             }
 
             @Test
@@ -318,16 +315,13 @@ class UserRoutesTest {
             }
 
             @Test
-            default void removeDelegatedUserShouldReturn400BadRequestWhenDelegatedUserIsNotExisted(UsersRepository usersRepository) throws UsersRepositoryException {
+            default void removeDelegatedUserShouldReturnOkWhenDelegatedUserIsNotExisted(UsersRepository usersRepository) throws UsersRepositoryException {
                 when(usersRepository.contains(ALICE)).thenReturn(true);
 
                 when()
                     .delete(String.format(REMOVE_DELEGATED_USER_PATH, ALICE.asString(), BOB.asString()))
                 .then()
-                    .statusCode(HttpStatus.BAD_REQUEST_400)
-                    .body("statusCode", is(HttpStatus.BAD_REQUEST_400))
-                    .body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType()))
-                    .body("message", is(String.format("Delegated user '%s' does not exist", BOB.asString())));
+                    .statusCode(HttpStatus.OK_200);
             }
 
 


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