]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: auth_request_init_userdb_reply() - Add add_default_fields parameter
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 4 Aug 2020 11:23:18 +0000 (14:23 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Thu, 27 Aug 2020 06:20:17 +0000 (06:20 +0000)
src/auth/auth-request-fields.c
src/auth/auth-request.c
src/auth/auth-request.h
src/auth/auth-worker-client.c

index e3a9519f39ffd104a94badbcc8766c26b5c6e548..5be1a1211d0e89bd027b128ba9530fa71abd313e 100644 (file)
@@ -444,14 +444,17 @@ void auth_request_set_password_verified(struct auth_request *request)
        request->fields.skip_password_check = TRUE;
 }
 
-void auth_request_init_userdb_reply(struct auth_request *request)
+void auth_request_init_userdb_reply(struct auth_request *request,
+                                   bool add_default_fields)
 {
        const char *error;
 
        request->fields.userdb_reply = auth_fields_init(request->pool);
-       if (userdb_template_export(request->userdb->default_fields_tmpl,
-                                  request, &error) < 0) {
-               e_error(authdb_event(request),
-                       "Failed to expand default_fields: %s", error);
+       if (add_default_fields) {
+               if (userdb_template_export(request->userdb->default_fields_tmpl,
+                                          request, &error) < 0) {
+                       e_error(authdb_event(request),
+                               "Failed to expand default_fields: %s", error);
+               }
        }
 }
index a0518ce5e491ac1f5d6392d13359aeedd101789e..755def330e4d5a2ea579dc3f64e28712925496c1 100644 (file)
@@ -1571,7 +1571,7 @@ void auth_request_lookup_user(struct auth_request *request,
        request->userdb_lookup = TRUE;
        request->userdb_result_from_cache = FALSE;
        if (request->fields.userdb_reply == NULL)
-               auth_request_init_userdb_reply(request);
+               auth_request_init_userdb_reply(request, TRUE);
        else {
                /* we still want to set default_fields. these override any
                   existing fields set by previous userdbs (because if that is
@@ -1833,7 +1833,7 @@ void auth_request_set_field(struct auth_request *request,
                /* for prefetch userdb */
                request->userdb_prefetch_set = TRUE;
                if (request->fields.userdb_reply == NULL)
-                       auth_request_init_userdb_reply(request);
+                       auth_request_init_userdb_reply(request, TRUE);
                if (strcmp(name, "userdb_userdb_import") == 0) {
                        /* we can't put the whole userdb_userdb_import
                           value to extra_cache_fields or it doesn't work
index 94caecf6c6fa02cd5d0a738ba2d45fd6e9068ef2..0bac4beafd3a49707a1cc5b304d2dd62901fa7fd 100644 (file)
@@ -260,7 +260,8 @@ void auth_request_set_fields(struct auth_request *request,
                             const char *const *fields,
                             const char *default_scheme) ATTR_NULL(3);
 
-void auth_request_init_userdb_reply(struct auth_request *request);
+void auth_request_init_userdb_reply(struct auth_request *request,
+                                   bool add_default_fields);
 void auth_request_set_userdb_field(struct auth_request *request,
                                   const char *name, const char *value);
 void auth_request_set_userdb_field_values(struct auth_request *request,
index 30e058793b206fdd4944a8f9e32056b33d450383..af7cddf46d4d35b63dfea3f8c2001e1e045c1912 100644 (file)
@@ -549,7 +549,7 @@ auth_worker_handle_user(struct auth_worker_command *cmd,
        }
 
        if (auth_request->fields.userdb_reply == NULL)
-               auth_request_init_userdb_reply(auth_request);
+               auth_request_init_userdb_reply(auth_request, TRUE);
        auth_request_userdb_lookup_begin(auth_request);
        auth_request->userdb->userdb->iface->
                lookup(auth_request, lookup_user_callback);