diff options
author | Sumit Bose <sbose@redhat.com> | 2009-10-09 13:34:35 +0200 |
---|---|---|
committer | Simo Sorce <ssorce@redhat.com> | 2009-10-15 18:18:31 -0400 |
commit | 66e96fc32e09b24ade6594c1f82e309c728ba7f4 (patch) | |
tree | b854265e9e6e5217ad2e6d8a61b4145b9ee5ffef /server/providers/ldap/sdap_async.c | |
parent | c0dfe79ba578d62a991b0a829d7e0f670a445109 (diff) | |
download | sssd-66e96fc32e09b24ade6594c1f82e309c728ba7f4.tar.gz sssd-66e96fc32e09b24ade6594c1f82e309c728ba7f4.tar.xz sssd-66e96fc32e09b24ade6594c1f82e309c728ba7f4.zip |
Check for expired passwords in LDAP provider
Diffstat (limited to 'server/providers/ldap/sdap_async.c')
-rw-r--r-- | server/providers/ldap/sdap_async.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/server/providers/ldap/sdap_async.c b/server/providers/ldap/sdap_async.c index dcafd450d..f088e517d 100644 --- a/server/providers/ldap/sdap_async.c +++ b/server/providers/ldap/sdap_async.c @@ -1281,6 +1281,7 @@ int sdap_auth_recv(struct tevent_req *req, enum sdap_result *result) default: *result = SDAP_ERROR; } + return EOK; } @@ -1326,6 +1327,8 @@ static struct tevent_req *sdap_save_user_send(TALLOC_CTX *memctx, gid_t gid; struct sysdb_attrs *user_attrs; char *upn = NULL; + int i; + char *val = NULL; req = tevent_req_create(memctx, &state, struct sdap_save_user_state); if (!req) return NULL; @@ -1477,6 +1480,28 @@ static struct tevent_req *sdap_save_user_send(TALLOC_CTX *memctx, } } + for (i = SDAP_FIRST_EXTRA_USER_AT; i < SDAP_OPTS_USER; i++) { + ret = sysdb_attrs_get_el(state->attrs, opts->user_map[i].sys_name, &el); + if (ret) { + goto fail; + } + if (el->num_values > 0) { + DEBUG(9, ("Adding [%s]=[%s] to user attributes.\n", + opts->user_map[i].sys_name, + (const char*) el->values[0].data)); + val = talloc_strdup(user_attrs, (const char*) el->values[0].data); + if (val == NULL) { + ret = ENOMEM; + goto fail; + } + ret = sysdb_attrs_add_string(user_attrs, + opts->user_map[i].sys_name, val); + if (ret) { + goto fail; + } + } + } + DEBUG(6, ("Storing info for user %s\n", state->name)); subreq = sysdb_store_user_send(state, state->ev, state->handle, |