JAMES-2186 MailboxManager should allow to check rights from a mailboxId
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/40303f70 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/40303f70 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/40303f70 Branch: refs/heads/master Commit: 40303f70af0cdd3e07e4366035b4898b76484b13 Parents: 089807a Author: benwa <[email protected]> Authored: Mon Oct 16 16:42:01 2017 +0700 Committer: Matthieu Baechler <[email protected]> Committed: Fri Oct 20 12:34:51 2017 +0200 ---------------------------------------------------------------------- .../java/org/apache/james/mailbox/MailboxManager.java | 2 ++ .../apache/james/mailbox/store/StoreMailboxManager.java | 12 ++++++++++++ .../imap/processor/base/MailboxEventAnalyserTest.java | 5 +++++ .../DefaultMailboxesProvisioningFilterThreadTest.java | 12 ++++++++++-- 4 files changed, 29 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/40303f70/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java ---------------------------------------------------------------------- diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java index 080169a..a2f6cf3 100644 --- a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java +++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java @@ -363,6 +363,8 @@ public interface MailboxManager extends RequestAware, MailboxListenerSupport { */ MailboxACL.Rfc4314Rights myRights(MailboxPath mailboxPath, MailboxSession session) throws MailboxException; + MailboxACL.Rfc4314Rights myRights(MailboxId mailboxId, MailboxSession session) throws MailboxException; + /** * Computes a result suitable for the LISTRIGHTS IMAP command. The result is * computed for this mailbox and the given {@code identifier}. http://git-wip-us.apache.org/repos/asf/james-project/blob/40303f70/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java index bd71085..35fc9b7 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java @@ -48,6 +48,7 @@ import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.exception.MailboxExistsException; import org.apache.james.mailbox.exception.MailboxNotFoundException; import org.apache.james.mailbox.exception.NotAdminException; +import org.apache.james.mailbox.exception.UnsupportedRightException; import org.apache.james.mailbox.exception.UserDoesNotExistException; import org.apache.james.mailbox.model.MailboxACL; import org.apache.james.mailbox.model.MailboxACL.Rfc4314Rights; @@ -846,6 +847,17 @@ public class StoreMailboxManager implements MailboxManager { public Rfc4314Rights myRights(MailboxPath mailboxPath, MailboxSession session) throws MailboxException { MailboxMapper mapper = mailboxSessionMapperFactory.getMailboxMapper(session); Mailbox mailbox = mapper.findMailboxByPath(mailboxPath); + return myRights(session, mailbox); + } + + @Override + public Rfc4314Rights myRights(MailboxId mailboxId, MailboxSession session) throws MailboxException { + MailboxMapper mapper = mailboxSessionMapperFactory.getMailboxMapper(session); + Mailbox mailbox = mapper.findMailboxById(mailboxId); + return myRights(session, mailbox); + } + + private Rfc4314Rights myRights(MailboxSession session, Mailbox mailbox) throws UnsupportedRightException { MailboxSession.User user = session.getUser(); if (user != null) { return aclResolver.resolveRights(user.getUserName(), groupMembershipResolver, mailbox.getACL(), mailbox.getUser(), new GroupFolderResolver(session).isGroupFolder(mailbox)); http://git-wip-us.apache.org/repos/asf/james-project/blob/40303f70/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java index 0aff062..819244b 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java @@ -371,6 +371,11 @@ public class MailboxEventAnalyserTest { throw new NotImplementedException("Not implemented"); } + @Override + public Rfc4314Rights myRights(MailboxId mailboxId, MailboxSession session) throws MailboxException { + throw new NotImplementedException("Not implemented"); + } + public Rfc4314Rights[] listRigths(MailboxPath mailboxPath, EntryKey mailboxACLEntryKey, MailboxSession mailboxSession) throws MailboxException { throw new NotImplementedException("Not implemented"); } http://git-wip-us.apache.org/repos/asf/james-project/blob/40303f70/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java index ac14cc2..82e3a07 100644 --- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java +++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java @@ -23,6 +23,7 @@ import java.util.List; import java.util.Optional; import java.util.Set; +import org.apache.commons.lang.NotImplementedException; import org.apache.james.mailbox.MailboxListener; import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxSession; @@ -195,20 +196,27 @@ public class DefaultMailboxesProvisioningFilterThreadTest { @Override public MailboxACL.Rfc4314Rights myRights(MailboxPath mailboxPath, MailboxSession session) throws MailboxException { - return null; + throw new NotImplementedException(); + } + + @Override + public MailboxACL.Rfc4314Rights myRights(MailboxId mailboxId, MailboxSession session) throws MailboxException { + throw new NotImplementedException(); } @Override public MailboxACL.Rfc4314Rights[] listRigths(MailboxPath mailboxPath, MailboxACL.EntryKey identifier, MailboxSession session) throws MailboxException { - return null; + throw new NotImplementedException(); } @Override public void applyRightsCommand(MailboxPath mailboxPath, MailboxACL.ACLCommand mailboxACLCommand, MailboxSession session) throws MailboxException { + throw new NotImplementedException(); } @Override public void setRights(MailboxPath mailboxPath, MailboxACL mailboxACL, MailboxSession session) throws MailboxException { + throw new NotImplementedException(); } @Override --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
