]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: raw-storage - Replace userdb_fields with code_override_fields
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 13 Nov 2023 23:40:13 +0000 (01:40 +0200)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 12 Feb 2025 10:34:10 +0000 (12:34 +0200)
This way any -o parameters can't override raw user's settings.

src/lib-storage/index/raw/raw-storage.c
src/lib-storage/mail-storage-service.c

index a63fc6257aa58e772ab4038c36f1405882f4eb68..03cb87f52c704b3e9744072175f0f64699338a9d 100644 (file)
@@ -35,9 +35,9 @@ raw_storage_create_from_set(struct mail_storage_service_ctx *ctx,
 
        const struct master_service_settings *service_set =
                master_service_get_service_settings(master_service);
-       const char *const userdb_fields[] = {
+       const char *const code_override_fields[] = {
                /* use unwritable home directory */
-               t_strdup_printf("home=%s/empty", service_set->base_dir),
+               t_strdup_printf("mail_home=%s/empty", service_set->base_dir),
                /* absolute paths are ok with raw storage */
                "mail_full_filesystem_access=yes",
                NULL,
@@ -48,7 +48,7 @@ raw_storage_create_from_set(struct mail_storage_service_ctx *ctx,
                .set_instance = set_instance,
                .autocreated = TRUE,
                .no_userdb_lookup = TRUE,
-               .userdb_fields = userdb_fields,
+               .code_override_fields = code_override_fields,
                .flags_override_add =
                        MAIL_STORAGE_SERVICE_FLAG_NO_RESTRICT_ACCESS |
                        MAIL_STORAGE_SERVICE_FLAG_NO_CHDIR |
index 5ba835b87dcae3dfece140a7198c3ff73f82004e..4756393001e0e61f1063b17e140c61d1b1217fac 100644 (file)
@@ -230,6 +230,8 @@ mail_storage_service_add_code_overrides(struct mail_storage_service_user *user,
                const char *key, *value;
                t_split_key_value_eq(code_override_fields[i], &key, &value);
 
+               if (strcmp(key, "mail_home") == 0)
+                       user->home_from_userdb = TRUE;
                settings_override(user->set_instance, key, value,
                                  SETTINGS_OVERRIDE_TYPE_CODE);
        }