From: scyrma Date: Fri, 26 Sep 2008 08:09:47 +0000 (+0000) Subject: MDL-16700: Making the password policy be applied all at once. (merge from 1.9) X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=1337d29583550e9664e8444b34478851ad91945b;p=moodle.git MDL-16700: Making the password policy be applied all at once. (merge from 1.9) Also, any policy letting a user use password "password" is not worth using, so removing this check. --- diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 9131f22006..26782d3d33 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -3360,22 +3360,23 @@ function check_password_policy($password, &$errmsg) { $textlib = textlib_get_instance(); $errmsg = ''; if ($textlib->strlen($password) < $CFG->minpasswordlength) { - $errmsg = get_string('errorminpasswordlength', 'auth', $CFG->minpasswordlength); + $errmsg .= '
'. get_string('errorminpasswordlength', 'auth', $CFG->minpasswordlength) .'
'; - } else if (preg_match_all('/[[:digit:]]/u', $password, $matches) < $CFG->minpassworddigits) { - $errmsg = get_string('errorminpassworddigits', 'auth', $CFG->minpassworddigits); - - } else if (preg_match_all('/[[:lower:]]/u', $password, $matches) < $CFG->minpasswordlower) { - $errmsg = get_string('errorminpasswordlower', 'auth', $CFG->minpasswordlower); + } + if (preg_match_all('/[[:digit:]]/u', $password, $matches) < $CFG->minpassworddigits) { + $errmsg .= '
'. get_string('errorminpassworddigits', 'auth', $CFG->minpassworddigits) .'
'; - } else if (preg_match_all('/[[:upper:]]/u', $password, $matches) < $CFG->minpasswordupper) { - $errmsg = get_string('errorminpasswordupper', 'auth', $CFG->minpasswordupper); + } + if (preg_match_all('/[[:lower:]]/u', $password, $matches) < $CFG->minpasswordlower) { + $errmsg .= '
'. get_string('errorminpasswordlower', 'auth', $CFG->minpasswordlower) .'
'; - } else if (preg_match_all('/[^[:upper:][:lower:][:digit:]]/u', $password, $matches) < $CFG->minpasswordnonalphanum) { - $errmsg = get_string('errorminpasswordnonalphanum', 'auth', $CFG->minpasswordnonalphanum); + } + if (preg_match_all('/[[:upper:]]/u', $password, $matches) < $CFG->minpasswordupper) { + $errmsg .= '
'. get_string('errorminpasswordupper', 'auth', $CFG->minpasswordupper) .'
'; - } else if ($password == 'admin' or $password == 'password') { - $errmsg = get_string('unsafepassword'); + } + if (preg_match_all('/[^[:upper:][:lower:][:digit:]]/u', $password, $matches) < $CFG->minpasswordnonalphanum) { + $errmsg .= '
'. get_string('errorminpasswordnonalphanum', 'auth', $CFG->minpasswordnonalphanum) .'
'; } if ($errmsg == '') {