JAMES-2169 Optimize a bit right checking upon mailbox read
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/3682a4a0 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/3682a4a0 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/3682a4a0 Branch: refs/heads/master Commit: 3682a4a02877181f780ca30000dc720a56a413c1 Parents: 7e2062b Author: benwa <[email protected]> Authored: Wed Oct 4 09:08:36 2017 +0700 Committer: benwa <[email protected]> Committed: Wed Oct 4 16:24:50 2017 +0700 ---------------------------------------------------------------------- .../org/apache/james/mailbox/store/StoreMailboxManager.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/3682a4a0/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 7f50a8d..b96ba8c 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.Right; @@ -534,7 +535,7 @@ public class StoreMailboxManager implements MailboxManager { } private boolean userHasReadRightsOn(Mailbox mailbox, MailboxSession session) throws MailboxException { - return hasRight(mailbox.generateAssociatedPath(), Right.Read, session); + return hasRight(mailbox, Right.Read, session); } @Override @@ -798,6 +799,10 @@ public class StoreMailboxManager implements MailboxManager { public boolean hasRight(MailboxPath mailboxPath, Right right, MailboxSession session) throws MailboxException { MailboxMapper mapper = mailboxSessionMapperFactory.getMailboxMapper(session); Mailbox mailbox = mapper.findMailboxByPath(mailboxPath); + return hasRight(mailbox, right, session); + } + + private boolean hasRight(Mailbox mailbox, Right right, MailboxSession session) throws UnsupportedRightException { MailboxSession.User user = session.getUser(); String userName = user != null ? user.getUserName() : null; return aclResolver.hasRight(userName, groupMembershipResolver, right, mailbox.getACL(), mailbox.getUser(), new GroupFolderResolver(session).isGroupFolder(mailbox)); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
