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