You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by rc...@apache.org on 2024/02/01 07:04:17 UTC
(james-project) branch master updated: [ENHANCEMENT] Allow customizing sortOrder
This is an automated email from the ASF dual-hosted git repository.
rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
The following commit(s) were added to refs/heads/master by this push:
new 9254c46d4b [ENHANCEMENT] Allow customizing sortOrder
9254c46d4b is described below
commit 9254c46d4bbc65553184369b434ca7e4d863acfb
Author: Benoit TELLIER <bt...@linagora.com>
AuthorDate: Mon Jan 29 21:17:03 2024 +0100
[ENHANCEMENT] Allow customizing sortOrder
---
.../java/org/apache/james/jmap/rfc8621/RFC8621MethodsModule.java | 2 ++
.../src/main/scala/org/apache/james/jmap/mail/Mailbox.scala | 8 ++++++++
.../main/scala/org/apache/james/jmap/mail/MailboxFactory.scala | 5 +++--
3 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/rfc8621/RFC8621MethodsModule.java b/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/rfc8621/RFC8621MethodsModule.java
index 9a73a82c2b..68a7c6a958 100644
--- a/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/rfc8621/RFC8621MethodsModule.java
+++ b/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/rfc8621/RFC8621MethodsModule.java
@@ -48,6 +48,7 @@ import org.apache.james.jmap.http.JWTAuthenticationStrategy;
import org.apache.james.jmap.http.rfc8621.InjectionKeys;
import org.apache.james.jmap.mail.DefaultNamespaceFactory;
import org.apache.james.jmap.mail.NamespaceFactory;
+import org.apache.james.jmap.mail.SortOrderProvider;
import org.apache.james.jmap.method.CoreEchoMethod;
import org.apache.james.jmap.method.DelegateGetMethod;
import org.apache.james.jmap.method.DelegateSetMethod;
@@ -128,6 +129,7 @@ public class RFC8621MethodsModule extends AbstractModule {
@Override
protected void configure() {
bind(NamespaceFactory.class).to(DefaultNamespaceFactory.class);
+ bind(SortOrderProvider.class).toInstance(SortOrderProvider.DEFAULT());
bind(ZoneIdProvider.class).to(SystemZoneIdProvider.class);
bind(EmailSubmissionSetMethod.class).in(Scopes.SINGLETON);
diff --git a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/Mailbox.scala b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/Mailbox.scala
index 2b72150a86..a836d1eb1a 100644
--- a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/Mailbox.scala
+++ b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/Mailbox.scala
@@ -115,6 +115,14 @@ object MailboxName {
}
}
+object SortOrderProvider {
+ val DEFAULT: SortOrderProvider = role => SortOrder.getSortOrder(role)
+}
+
+trait SortOrderProvider {
+ def retrieveSortOrder(role: Role): SortOrder
+}
+
case class Mailbox(id: MailboxId,
name: MailboxName,
parentId: Option[MailboxId],
diff --git a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/MailboxFactory.scala b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/MailboxFactory.scala
index 1a3fc8b2b8..33bf407ba0 100644
--- a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/MailboxFactory.scala
+++ b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/MailboxFactory.scala
@@ -75,12 +75,13 @@ case class Subscriptions(subscribedNames: Set[MailboxPath]) {
}
class MailboxFactory @Inject() (mailboxManager: MailboxManager,
- namespaceFactory: NamespaceFactory) {
+ namespaceFactory: NamespaceFactory,
+ sortOrderProvider: SortOrderProvider) {
private def getRole(mailboxPath: MailboxPath, mailboxSession: MailboxSession): Option[Role] = Role.from(mailboxPath.getName)
.filter(_ => mailboxPath.belongsTo(mailboxSession)).toScala
- private def getSortOrder(role: Option[Role]): SortOrder = role.map(SortOrder.getSortOrder).getOrElse(SortOrder.defaultSortOrder)
+ private def getSortOrder(role: Option[Role]): SortOrder = role.map(sortOrderProvider.retrieveSortOrder).getOrElse(SortOrder.defaultSortOrder)
private def getRights(resolveMailboxACL: JavaMailboxACL): Rights = Rights.fromACL(MailboxACL.fromJava(resolveMailboxACL))
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org