MDL-52387 auth_ldap: add support for fine grained password

Contributed by Matthew Johnson.
This commit is contained in:
Simey Lameze
2016-02-16 11:03:42 +08:00
parent 9d5d9c64ff
commit c1bc628e1d
+14
View File
@@ -2081,7 +2081,21 @@ class auth_plugin_ldap extends auth_plugin_base {
$entry = ldap_get_entries_moodle($ldapconn, $sr);
$info = array_change_key_case($entry[0], CASE_LOWER);
$maxpwdage = $info['maxpwdage'][0];
if ($sr = ldap_read($ldapconn, $user_dn, '(objectClass=*)', array('msDS-ResultantPSO', 'msDS-MaximumPasswordAge'))) {
if ($entry = ldap_get_entries_moodle($ldapconn, $sr)) {
$info = array_change_key_case($entry[0], CASE_LOWER);
$userpso = $info['msds-resultantpso'][0];
// If a PSO exists, FGPP is being utilized.
// Grab the new maxpwdage from the msDS-MaximumPasswordAge attribute of the PSO.
if (!empty($userpso)) {
if ($entry = ldap_get_entries_moodle($ldapconn, $sr)) {
$info = array_change_key_case($entry[0], CASE_LOWER);
$maxpwdage = $info['msds-maximumpasswordage'][0];
}
}
}
}
// ----------------------------------------------------------------
// MSDN says that "pwdLastSet contains the number of 100 nanosecond
// intervals since January 1, 1601 (UTC), stored in a 64 bit integer".