{ 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);
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);