chibenwa commented on code in PR #2474:
URL: https://github.com/apache/james-project/pull/2474#discussion_r1824563982
##########
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:
Please understand that "user misses some system mailboxes" is not logically
equivalent to "user only has an 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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]