From af9701630d5a04924e5f28d34f5346f20e7875e2 Mon Sep 17 00:00:00 2001 From: alec Date: Thu, 30 Sep 2010 07:02:52 +0000 Subject: - Added password_ldap_lchattr option (#1486927) git-svn-id: https://svn.roundcube.net/trunk@4019 208e9e7b-5314-0410-a742-e7e81cd9613c --- plugins/password/drivers/ldap.php | 13 ++++++++++--- plugins/password/drivers/ldap_simple.php | 11 +++++++++-- 2 files changed, 19 insertions(+), 5 deletions(-) (limited to 'plugins/password/drivers') diff --git a/plugins/password/drivers/ldap.php b/plugins/password/drivers/ldap.php index f86abd7f4..c5cb2328a 100644 --- a/plugins/password/drivers/ldap.php +++ b/plugins/password/drivers/ldap.php @@ -80,12 +80,21 @@ function password_save($curpass, $passwd) if (!$userEntry->replace(array($pwattr => $newCryptedPassword), $force)) { return PASSWORD_CONNECT_ERROR; } + + // Updating PasswordLastChange Attribute if desired + if ($lchattr = $rcmail->config->get('password_ldap_lchattr')) { + $current_day = (int)(time() / 86400); + if (!$userEntry->replace(array($lchattr => $current_day), $force)) { + return PASSWORD_CONNECT_ERROR; + } + } + if (Net_LDAP2::isError($userEntry->update())) { return PASSWORD_CONNECT_ERROR; } // All done, no error - return PASSWORD_SUCCESS; + return PASSWORD_SUCCESS; } /** @@ -269,5 +278,3 @@ function randomSalt( $length ) return $str; } - -?> diff --git a/plugins/password/drivers/ldap_simple.php b/plugins/password/drivers/ldap_simple.php index fbe2edd97..541afa96b 100644 --- a/plugins/password/drivers/ldap_simple.php +++ b/plugins/password/drivers/ldap_simple.php @@ -1,4 +1,5 @@ config->get('password_ldap_host'), $rcmail->config->get('password_ldap_port'))) { ldap_unbind($ds); @@ -24,7 +25,7 @@ function password_save($curpass, $passwd) ldap_unbind($ds); return PASSWORD_CONNECT_ERROR; } - + /* Start TLS */ if ($rcmail->config->get('password_ldap_starttls')) { if (!ldap_start_tls($ds)) { @@ -72,6 +73,12 @@ function password_save($curpass, $passwd) } $entree[$rcmail->config->get('password_ldap_pwattr')] = $passwd; + + /* Updating PasswordLastChange Attribute if desired */ + if ($lchattr = $rcmail->config->get('password_ldap_lchattr')) { + $entree[$lchattr] = (int)(time() / 86400) + } + if (!ldap_modify($ds, $user_dn, $entree)) { ldap_unbind($ds); -- cgit v1.2.3