about summary refs log tree commit diff stats
path: root/modules/by-name/st/stalwart-mail/patches/fix-crates-directory-Guard-all-enterprise-only-featu.patch
diff options
context:
space:
mode:
Diffstat (limited to 'modules/by-name/st/stalwart-mail/patches/fix-crates-directory-Guard-all-enterprise-only-featu.patch')
-rw-r--r--modules/by-name/st/stalwart-mail/patches/fix-crates-directory-Guard-all-enterprise-only-featu.patch86
1 files changed, 86 insertions, 0 deletions
diff --git a/modules/by-name/st/stalwart-mail/patches/fix-crates-directory-Guard-all-enterprise-only-featu.patch b/modules/by-name/st/stalwart-mail/patches/fix-crates-directory-Guard-all-enterprise-only-featu.patch
new file mode 100644
index 0000000..80c4b60
--- /dev/null
+++ b/modules/by-name/st/stalwart-mail/patches/fix-crates-directory-Guard-all-enterprise-only-featu.patch
@@ -0,0 +1,86 @@
+From 3d20702a481bfa4ecc692cd07a7f1fe0a66bb5d9 Mon Sep 17 00:00:00 2001
+From: Benedikt Peetz <benedikt.peetz@b-peetz.de>
+Date: Sun, 9 Feb 2025 00:38:13 +0100
+Subject: [PATCH] fix(crates/directory): Guard all enterprise only features
+ behind a `enterprise` cfg block
+
+---
+ crates/directory/src/core/config.rs   | 1 +
+ crates/directory/src/core/dispatch.rs | 7 +++++++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/crates/directory/src/core/config.rs b/crates/directory/src/core/config.rs
+index dfb7bf9b..0c3ce96a 100644
+--- a/crates/directory/src/core/config.rs
++++ b/crates/directory/src/core/config.rs
+@@ -84,6 +84,7 @@ impl Directories {
+                 "memory" => MemoryDirectory::from_config(config, prefix, data_store.clone())
+                     .await
+                     .map(DirectoryInner::Memory),
++                #[cfg(feature = "enterprise")]
+                 "oidc" => OpenIdDirectory::from_config(config, prefix, data_store.clone())
+                     .map(DirectoryInner::OpenId),
+                 unknown => {
+diff --git a/crates/directory/src/core/dispatch.rs b/crates/directory/src/core/dispatch.rs
+index a99e54fe..062f29c9 100644
+--- a/crates/directory/src/core/dispatch.rs
++++ b/crates/directory/src/core/dispatch.rs
+@@ -24,6 +24,7 @@ impl Directory {
+             DirectoryInner::Imap(store) => store.query(by).await,
+             DirectoryInner::Smtp(store) => store.query(by).await,
+             DirectoryInner::Memory(store) => store.query(by).await,
++            #[cfg(feature = "enterprise")]
+             DirectoryInner::OpenId(store) => store.query(by, return_member_of).await,
+         }
+         .caused_by(trc::location!())
+@@ -37,6 +38,7 @@ impl Directory {
+             DirectoryInner::Imap(store) => store.email_to_id(address).await,
+             DirectoryInner::Smtp(store) => store.email_to_id(address).await,
+             DirectoryInner::Memory(store) => store.email_to_id(address).await,
++            #[cfg(feature = "enterprise")]
+             DirectoryInner::OpenId(store) => store.email_to_id(address).await,
+         }
+         .caused_by(trc::location!())
+@@ -57,6 +59,7 @@ impl Directory {
+             DirectoryInner::Imap(store) => store.is_local_domain(domain).await,
+             DirectoryInner::Smtp(store) => store.is_local_domain(domain).await,
+             DirectoryInner::Memory(store) => store.is_local_domain(domain).await,
++            #[cfg(feature = "enterprise")]
+             DirectoryInner::OpenId(store) => store.is_local_domain(domain).await,
+         }
+         .caused_by(trc::location!())?;
+@@ -84,6 +87,7 @@ impl Directory {
+             DirectoryInner::Imap(store) => store.rcpt(email).await,
+             DirectoryInner::Smtp(store) => store.rcpt(email).await,
+             DirectoryInner::Memory(store) => store.rcpt(email).await,
++            #[cfg(feature = "enterprise")]
+             DirectoryInner::OpenId(store) => store.rcpt(email).await,
+         }
+         .caused_by(trc::location!())?;
+@@ -104,6 +108,7 @@ impl Directory {
+             DirectoryInner::Imap(store) => store.vrfy(address).await,
+             DirectoryInner::Smtp(store) => store.vrfy(address).await,
+             DirectoryInner::Memory(store) => store.vrfy(address).await,
++            #[cfg(feature = "enterprise")]
+             DirectoryInner::OpenId(store) => store.vrfy(address).await,
+         }
+         .caused_by(trc::location!())
+@@ -117,6 +122,7 @@ impl Directory {
+             DirectoryInner::Imap(store) => store.expn(address).await,
+             DirectoryInner::Smtp(store) => store.expn(address).await,
+             DirectoryInner::Memory(store) => store.expn(address).await,
++            #[cfg(feature = "enterprise")]
+             DirectoryInner::OpenId(store) => store.expn(address).await,
+         }
+         .caused_by(trc::location!())
+@@ -130,6 +136,7 @@ impl Directory {
+             | DirectoryInner::Imap(_)
+             | DirectoryInner::Smtp(_)
+             | DirectoryInner::Memory(_) => false,
++            #[cfg(feature = "enterprise")]
+             DirectoryInner::OpenId(_) => true,
+         }
+     }
+-- 
+2.47.1
+