From 2541c64e9917aadc82b5cfb0dbc367d31da77bad Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 15 Aug 2024 10:59:57 +0300 Subject: [PATCH] lib-storage: Fix IMAP SPECIAL-USE capability when using global mailbox settings --- src/lib-storage/mail-storage-settings.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/lib-storage/mail-storage-settings.c b/src/lib-storage/mail-storage-settings.c index 897ca87987..8733ba5d6d 100644 --- a/src/lib-storage/mail-storage-settings.c +++ b/src/lib-storage/mail-storage-settings.c @@ -445,7 +445,16 @@ bool mail_user_settings_update_special_use(struct mail_user *user, const struct mail_namespace_settings *ns; const char *ns_name, *error; - if (!array_is_created(&set->namespaces)) + /* Check if there are any global mailbox { .. } settings */ + if (settings_get(user->event, &mail_namespace_setting_parser_info, + SETTINGS_GET_FLAG_FAKE_EXPAND, &ns, error_r) < 0) + return FALSE; + if (ns->parsed_have_special_use_mailboxes && !ns->disabled) + user->have_special_use_mailboxes = TRUE; + settings_free(ns); + + /* Check mailbox { .. } settings inside namespace { .. } */ + if (!array_is_created(&set->namespaces) || user->have_special_use_mailboxes) return TRUE; array_foreach_elem(&set->namespaces, ns_name) { -- 2.47.3