From b5ed2c7a3a989b06c844241d76c31e8f4e381297 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Sun, 3 Dec 2023 01:53:29 +0200 Subject: [PATCH] lib-storage: shared - Fix using proper namespace settings for shared users --- src/lib-storage/index/shared/shared-storage.c | 3 ++- src/lib-storage/mail-storage.c | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/lib-storage/index/shared/shared-storage.c b/src/lib-storage/index/shared/shared-storage.c index 58a56c03e5..2178dee626 100644 --- a/src/lib-storage/index/shared/shared-storage.c +++ b/src/lib-storage/index/shared/shared-storage.c @@ -355,7 +355,8 @@ shared_mail_user_init(struct mail_storage *_storage, { NULL, NULL } }; - struct event *set_event = event_create(ns->list->event); + struct event *set_event = event_create(user->event); + event_add_str(set_event, "namespace", ns->set->name); event_set_ptr(set_event, SETTINGS_EVENT_VAR_EXPAND_TABLE, tab); event_set_ptr(set_event, SETTINGS_EVENT_VAR_EXPAND_FUNC_TABLE, func_tab); diff --git a/src/lib-storage/mail-storage.c b/src/lib-storage/mail-storage.c index ed670435d3..81c084c1d7 100644 --- a/src/lib-storage/mail-storage.c +++ b/src/lib-storage/mail-storage.c @@ -339,7 +339,11 @@ mail_storage_create_list(struct mail_namespace *ns, storage-specific defaults for mailbox list settings. */ event_set_ptr(set_event, SETTINGS_EVENT_FILTER_NAME, (void *)storage_class->name); - event_add_str(set_event, "namespace", ns->set->name); + /* Set namespace, but don't overwrite if it already is set. + Shared storage uses the same shared namespace here also for the + user's root prefix="" namespace. */ + if (event_find_field_recursive(set_event, "namespace") == NULL) + event_add_str(set_event, "namespace", ns->set->name); if ((flags & MAIL_STORAGE_FLAG_SHARED_DYNAMIC) != 0) { mail_storage_create_ns_instance(ns, set_event); -- 2.47.3