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]

Reply via email to