chibenwa commented on code in PR #2474: URL: https://github.com/apache/james-project/pull/2474#discussion_r1822108825
########## server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/UserRoutes.java: ########## @@ -61,6 +67,44 @@ import spark.Service; public class UserRoutes implements Routes { + interface UserCondition { + boolean satisfyCondition(UserResponse user); + } + + static class HasNoMailboxesCondition implements UserCondition { + private final UserMailboxesService userMailboxesService; + + public HasNoMailboxesCondition(UserMailboxesService userMailboxesService) { + this.userMailboxesService = userMailboxesService; + } + + @Override + public boolean satisfyCondition(UserResponse user) { + try { + return userMailboxesService.listMailboxes(Username.of(user.getUsername())).isEmpty(); + } catch (UsersRepositoryException e) { + throw new RuntimeException(e); + } + } + } + + static class HasNotAccessAllSystemMailboxesCondition implements UserCondition { + private final UserMailboxesService userMailboxesService; + + public HasNotAccessAllSystemMailboxesCondition(UserMailboxesService userMailboxesService) { + this.userMailboxesService = userMailboxesService; + } + + @Override + public boolean satisfyCondition(UserResponse user) { + try { + List<Mailbox> mailboxes = userMailboxesService.listMailboxes(Username.of(user.getUsername())); + return mailboxes.size() == 1 && DefaultMailboxes.INBOX.equals(mailboxes.getFirst().getName()); Review Comment: No I wishes we verifies that for each system mailbox it exist onto the user account and return false if it is not the case. Nothing specific about INBOX. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@james.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: notifications-unsubscr...@james.apache.org For additional commands, e-mail: notifications-h...@james.apache.org