auth_fields_add(fields->extra_fields, key, value, 0);
else if (str_begins(key, "userdb_", &key)) {
if (fields->userdb_reply == NULL)
- auth_request_init_userdb_reply(request, FALSE);
+ auth_request_init_userdb_reply(request);
auth_fields_add(fields->userdb_reply, key, value, 0);
} else
return FALSE;
request->fields.skip_password_check = TRUE;
}
-void auth_request_init_userdb_reply(struct auth_request *request,
- bool add_default_fields)
+void auth_request_init_userdb_reply(struct auth_request *request)
{
- const char *error;
-
request->fields.userdb_reply = auth_fields_init(request->pool);
- 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);
- }
- }
}
void auth_request_set_delayed_credentials(struct auth_request *request,
Don't add userdb's default_fields, because the entire userdb part of
the result comes from the cache. */
if (request->fields.userdb_reply == NULL)
- auth_request_init_userdb_reply(request, FALSE);
+ auth_request_init_userdb_reply(request);
auth_request_userdb_import(request, value);
return TRUE;
}
request->userdb_lookup = TRUE;
request->userdb_cache_result = AUTH_REQUEST_CACHE_NONE;
if (request->fields.userdb_reply == NULL)
- 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
- unwanted, ":protected" can be used). */
- if (userdb_template_export(userdb->default_fields_tmpl,
- request, &error) < 0) {
- e_error(authdb_event(request),
- "Failed to expand default_fields: %s", error);
- auth_request_userdb_callback(
- USERDB_RESULT_INTERNAL_FAILURE, request);
- return;
- }
+ auth_request_init_userdb_reply(request);
+ /* we still want to set default_fields. these override any
+ existing fields set by previous userdbs (because if that is
+ unwanted, ":protected" can be used). */
+ if (userdb_template_export(userdb->default_fields_tmpl,
+ request, &error) < 0) {
+ e_error(authdb_event(request),
+ "Failed to expand default_fields: %s", error);
+ auth_request_userdb_callback(
+ USERDB_RESULT_INTERNAL_FAILURE, request);
+ return;
}
auth_request_userdb_lookup_begin(request);
/* for prefetch userdb */
request->userdb_prefetch_set = TRUE;
if (request->fields.userdb_reply == NULL)
- auth_request_init_userdb_reply(request, TRUE);
+ auth_request_init_userdb_reply(request);
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
const char *const *fields,
const char *default_scheme) ATTR_NULL(3);
-void auth_request_init_userdb_reply(struct auth_request *request,
- bool add_default_fields);
+void auth_request_init_userdb_reply(struct auth_request *request);
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,
#include "process-title.h"
#include "master-service.h"
#include "auth-request.h"
+#include "userdb-template.h"
#include "auth-worker-server.h"
/* lookup user */
struct auth_request *auth_request;
unsigned int userdb_id;
+ const char *error;
/* <userdb id> [<args>] */
if (str_to_uint(args[0], &userdb_id) < 0) {
return FALSE;
}
- if (auth_request->fields.userdb_reply == NULL)
- auth_request_init_userdb_reply(auth_request, TRUE);
auth_request_userdb_lookup_begin(auth_request);
+ if (auth_request->fields.userdb_reply == NULL)
+ auth_request_init_userdb_reply(auth_request);
+ if (userdb_template_export(auth_request->userdb->default_fields_tmpl,
+ auth_request, &error) < 0) {
+ e_error(authdb_event(auth_request),
+ "Failed to expand default_fields: %s", error);
+ lookup_user_callback(USERDB_RESULT_INTERNAL_FAILURE,
+ auth_request);
+ return TRUE;
+ }
+
auth_request->userdb->userdb->iface->
lookup(auth_request, lookup_user_callback);
return TRUE;