event_add_str(request->event, "translated_user",
request->fields.translated_username);
}
- request->user_changed_by_lookup = TRUE;
+ request->user_returned_by_lookup = TRUE;
if (login_username != NULL) {
if (!auth_request_set_login_username(request,
request->mech_password = p_strdup(request->pool, password);
else
i_assert(request->mech_password == password);
- request->user_changed_by_lookup = FALSE;
+ request->user_returned_by_lookup = FALSE;
if (request->policy_processed ||
!request->set->policy_check_before_auth) {
if (request->wanted_credentials_scheme == NULL)
request->wanted_credentials_scheme =
p_strdup(request->pool, scheme);
- request->user_changed_by_lookup = FALSE;
+ request->user_returned_by_lookup = FALSE;
if (request->policy_processed ||
!request->set->policy_check_before_auth) {
auth_fields_append(request->fields.userdb_reply, str,
AUTH_FIELD_FLAG_CHANGED,
AUTH_FIELD_FLAG_CHANGED, FALSE);
- if (request->user_changed_by_lookup) {
+ if (request->user_returned_by_lookup) {
/* username was changed by passdb or userdb */
if (str_len(str) > 0)
str_append_c(str, '\t');
if (result == USERDB_RESULT_INTERNAL_FAILURE)
request->userdbs_seen_internal_failure = TRUE;
- request->user_changed_by_lookup = FALSE;
+ request->user_returned_by_lookup = FALSE;
request->userdb = next_userdb;
auth_request_lookup_user(request,
const char *cache_key, *error;
request->private_callback.userdb = callback;
- request->user_changed_by_lookup = FALSE;
+ request->user_returned_by_lookup = FALSE;
request->userdb_lookup = TRUE;
request->userdb_cache_result = AUTH_REQUEST_CACHE_NONE;
if (request->fields.userdb_reply == NULL)
"username changed %s -> %s",
request->fields.user, new_value);
auth_request_set_username_forced(request, new_value);
- request->user_changed_by_lookup = TRUE;
}
+ request->user_returned_by_lookup = TRUE;
return TRUE;
}
bool in_delayed_failure_queue:1;
bool removed_from_handler:1;
bool snapshot_have_userdb_prefetch_set:1;
- /* username was changed by this passdb/userdb lookup. Used by
- auth-workers to determine whether to send back a changed username. */
- bool user_changed_by_lookup:1;
+ /* The last passdb/userdb lookup returned a username field. This may
+ or may not have changed the current username. */
+ bool user_returned_by_lookup:1;
/* each passdb lookup can update the current success-status using the
result_* rules. the authentication succeeds only if this is TRUE
at the end. mechanisms that don't require passdb, but do a passdb
}
if (result != PASSDB_RESULT_INTERNAL_FAILURE) {
str_append_c(str, '\t');
- if (request->user_changed_by_lookup)
+ if (request->user_returned_by_lookup)
str_append_tabescaped(str, request->fields.user);
str_append_c(str, '\t');
if (request->passdb_password != NULL)
str_append(str, "NEXT\t");
else
str_append(str, "OK\t");
- if (request->user_changed_by_lookup)
+ if (request->user_returned_by_lookup)
str_append_tabescaped(str, request->fields.user);
str_append_c(str, '\t');
if (request->wanted_credentials_scheme[0] != '\0') {
break;
case USERDB_RESULT_OK:
str_append(str, "OK\t");
- if (auth_request->user_changed_by_lookup)
+ if (auth_request->user_returned_by_lookup)
str_append_tabescaped(str, auth_request->fields.user);
/* export only the fields changed by this lookup */
auth_fields_append(auth_request->fields.userdb_reply, str,
args += 2;
}
- if (username[0] != '\0' &&
- strcmp(request->fields.user, username) != 0) {
- auth_request_set_username_forced(request, username);
- request->user_changed_by_lookup = TRUE;
+ if (username[0] != '\0') {
+ if (strcmp(request->fields.user, username) != 0)
+ auth_request_set_username_forced(request, username);
+ request->user_returned_by_lookup = TRUE;
}
} else {
result = USERDB_RESULT_INTERNAL_FAILURE;