diff options
author | Pavel Březina <pbrezina@redhat.com> | 2013-07-15 13:44:31 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2013-08-11 22:45:55 +0200 |
commit | 658e2757fa9559f5dff6d475ae50496429e3d89f (patch) | |
tree | c7faada09418c6d2c60abb2c4599ac6b6ade9610 /src/providers/ldap/sdap_async.c | |
parent | f4f0a4c2af6e1b7bb47a3f312718910efff731cf (diff) | |
download | sssd-658e2757fa9559f5dff6d475ae50496429e3d89f.tar.gz sssd-658e2757fa9559f5dff6d475ae50496429e3d89f.tar.xz sssd-658e2757fa9559f5dff6d475ae50496429e3d89f.zip |
print hint about password complexity when new password is rejected
https://fedorahosted.org/sssd/ticket/1827
Diffstat (limited to 'src/providers/ldap/sdap_async.c')
-rw-r--r-- | src/providers/ldap/sdap_async.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/providers/ldap/sdap_async.c b/src/providers/ldap/sdap_async.c index 73b2b64af..32763d2e6 100644 --- a/src/providers/ldap/sdap_async.c +++ b/src/providers/ldap/sdap_async.c @@ -641,7 +641,21 @@ static void sdap_exop_modify_passwd_done(struct sdap_op *op, DEBUG(3, ("ldap_extended_operation result: %s(%d), %s\n", sss_ldap_err2string(state->result), state->result, errmsg)); - if (state->result != LDAP_SUCCESS) { + switch (state->result) { + case LDAP_SUCCESS: + ret = EOK; + break; + case LDAP_CONSTRAINT_VIOLATION: + state->user_error_message = talloc_strdup(state, + "Please make sure the password meets the complexity constraints."); + if (state->user_error_message == NULL) { + DEBUG(SSSDBG_CRIT_FAILURE, ("talloc_strdup failed\n")); + ret = ENOMEM; + goto done; + } + ret = EIO; + goto done; + default: if (errmsg) { state->user_error_message = talloc_strdup(state, errmsg); if (state->user_error_message == NULL) { |