summaryrefslogtreecommitdiffstats
path: root/server/providers/ldap/sdap_async.c
diff options
context:
space:
mode:
authorSumit Bose <sbose@redhat.com>2009-10-09 13:34:35 +0200
committerSimo Sorce <ssorce@redhat.com>2009-10-15 18:18:31 -0400
commit66e96fc32e09b24ade6594c1f82e309c728ba7f4 (patch)
treeb854265e9e6e5217ad2e6d8a61b4145b9ee5ffef /server/providers/ldap/sdap_async.c
parentc0dfe79ba578d62a991b0a829d7e0f670a445109 (diff)
downloadsssd-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.c25
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,