Author: coudot
Date: 2010-07-17 15:47:32 +0200 (Sat, 17 Jul 2010)
New Revision: 90
Modified:
self-service-password/trunk/config.inc.php
self-service-password/trunk/functions.inc.php
self-service-password/trunk/pages/change.php
self-service-password/trunk/pages/resetbyquestions.php
self-service-password/trunk/pages/resetbytoken.php
Log:
* Policy constraints can now be displayed only on errors (references #256)
* ereg is deprecated, use preg_match instead
Modified: self-service-password/trunk/config.inc.php
===================================================================
--- self-service-password/trunk/config.inc.php 2010-07-17 13:36:45 UTC (rev 89)
+++ self-service-password/trunk/config.inc.php 2010-07-17 13:47:32 UTC (rev 90)
@@ -68,8 +68,11 @@
$pwd_special_chars = "^a-zA-Z0-9";
# Forbidden characters
#$pwd_forbidden_chars = "@%";
-# Show policy constraints message
-$pwd_show_policy = false;
+# Show policy constraints message:
+# always
+# never
+# onerror
+$pwd_show_policy = "never";
# Who changes the password?
# Also applicable for question/answer save
Modified: self-service-password/trunk/functions.inc.php
===================================================================
--- self-service-password/trunk/functions.inc.php 2010-07-17 13:36:45 UTC
(rev 89)
+++ self-service-password/trunk/functions.inc.php 2010-07-17 13:47:32 UTC
(rev 90)
@@ -86,11 +86,11 @@
# Get message criticity
function get_criticity( $msg ) {
- if ( ereg(
"nophpldap|nophpmhash|ldaperror|nomatch|badcredentials|passworderror|tooshort|toobig|minlower|minupper|mindigit|minspecial|forbiddenchars|answermoderror|answernomatch|mailnomatch|tokennotsent|tokennotvalid"
, $msg ) ) {
+ if ( preg_match(
"/nophpldap|nophpmhash|ldaperror|nomatch|badcredentials|passworderror|tooshort|toobig|minlower|minupper|mindigit|minspecial|forbiddenchars|answermoderror|answernomatch|mailnomatch|tokennotsent|tokennotvalid/"
, $msg ) ) {
return "critical";
}
- if ( ereg(
"(login|oldpassword|newpassword|confirmpassword|answer|question|password|mail|token)required"
, $msg ) ) {
+ if ( preg_match(
"/(login|oldpassword|newpassword|confirmpassword|answer|question|password|mail|token)required/"
, $msg ) ) {
return "warning";
}
@@ -99,19 +99,27 @@
# Display policy bloc
# @return HTML code
-function show_policy( $messages, $pwd_min_length, $pwd_max_length,
$pwd_min_lower, $pwd_min_upper, $pwd_min_digit, $pwd_min_special,
$pwd_forbidden_chars ) {
- echo "<div class=\"help\">\n";
- echo "<p>".$messages["policy"]."</p>\n";
- echo "<ul>\n";
- if ( $pwd_min_length ) { echo "<li>".$messages["policyminlength"]
." $pwd_min_length</li>\n"; }
- if ( $pwd_max_length ) { echo "<li>".$messages["policymaxlength"]
." $pwd_max_length</li>\n"; }
- if ( $pwd_min_lower ) { echo "<li>".$messages["policyminlower"]
." $pwd_min_lower</li>\n"; }
- if ( $pwd_min_upper ) { echo "<li>".$messages["policyminupper"]
." $pwd_min_upper</li>\n"; }
- if ( $pwd_min_digit ) { echo "<li>".$messages["policymindigit"]
." $pwd_min_digit</li>\n"; }
- if ( $pwd_min_special ) { echo
"<li>".$messages["policyminspecial"] ." $pwd_min_special</li>\n"; }
- if ( $pwd_forbidden_chars ) { echo
"<li>".$messages["policyforbiddenchars"] ." $pwd_forbidden_chars</li>\n"; }
- echo "</ul>\n";
- echo "</div>\n";
+function show_policy( $messages, $pwd_min_length, $pwd_max_length,
$pwd_min_lower, $pwd_min_upper, $pwd_min_digit, $pwd_min_special,
$pwd_forbidden_chars, $pwd_show_policy, $result ) {
+
+ # Should we display it?
+ if ( !$pwd_show_policy or $pwd_show_policy === "never" ) { return; }
+ if ( $pwd_show_policy === "onerror" ) {
+ if ( !preg_match(
"/tooshort|toobig|minlower|minupper|mindigit|minspecial|forbiddenchars/" ,
$result) ) { return; }
+ }
+
+ # Display bloc
+ echo "<div class=\"help\">\n";
+ echo "<p>".$messages["policy"]."</p>\n";
+ echo "<ul>\n";
+ if ( $pwd_min_length ) { echo "<li>".$messages["policyminlength"]
." $pwd_min_length</li>\n"; }
+ if ( $pwd_max_length ) { echo "<li>".$messages["policymaxlength"]
." $pwd_max_length</li>\n"; }
+ if ( $pwd_min_lower ) { echo "<li>".$messages["policyminlower"]
." $pwd_min_lower</li>\n"; }
+ if ( $pwd_min_upper ) { echo "<li>".$messages["policyminupper"]
." $pwd_min_upper</li>\n"; }
+ if ( $pwd_min_digit ) { echo "<li>".$messages["policymindigit"]
." $pwd_min_digit</li>\n"; }
+ if ( $pwd_min_special ) { echo "<li>".$messages["policyminspecial"]
." $pwd_min_special</li>\n"; }
+ if ( $pwd_forbidden_chars ) { echo
"<li>".$messages["policyforbiddenchars"] ." $pwd_forbidden_chars</li>\n"; }
+ echo "</ul>\n";
+ echo "</div>\n";
}
# Check password strength
Modified: self-service-password/trunk/pages/change.php
===================================================================
--- self-service-password/trunk/pages/change.php 2010-07-17 13:36:45 UTC
(rev 89)
+++ self-service-password/trunk/pages/change.php 2010-07-17 13:47:32 UTC
(rev 90)
@@ -30,6 +30,8 @@
$confirmpassword = "";
$newpassword = "";
$oldpassword = "";
+$ldap = "";
+$userdn = "";
if (!isset($pwd_forbidden_chars)) { $pwd_forbidden_chars=""; }
if (isset($_POST["confirmpassword"]) and $_POST["confirmpassword"]) {
$confirmpassword = $_POST["confirmpassword"]; }
@@ -50,16 +52,9 @@
# Match new and confirm password
if ( $newpassword != $confirmpassword ) { $result="nomatch"; }
-#==============================================================================
-# Check password strength
-#==============================================================================
-if ( $result === "" ) {
- $result = check_password_strength( $newpassword, $pwd_special_chars,
$pwd_forbidden_chars, $pwd_min_length, $pwd_max_length, $pwd_min_lower,
$pwd_min_upper, $pwd_min_digit, $pwd_min_special );
-}
-
#==============================================================================
-# Change password
+# Check old password
#==============================================================================
if ( $result === "" ) {
@@ -113,17 +108,26 @@
$bind = ldap_bind($ldap, $ldap_binddn, $ldap_bindpw);
}
- # Change password
- if ($result === "") {
- $result = change_password($ldap, $userdn, $newpassword, $ad_mode,
$samba_mode, $hash);
- }
-
}}}}
- @ldap_close($ldap);
}
#==============================================================================
+# Check password strength
+#==============================================================================
+if ( $result === "" ) {
+ $result = check_password_strength( $newpassword, $pwd_special_chars,
$pwd_forbidden_chars, $pwd_min_length, $pwd_max_length, $pwd_min_lower,
$pwd_min_upper, $pwd_min_digit, $pwd_min_special );
+}
+
+
+#==============================================================================
+# Change password
+#==============================================================================
+if ( $result === "" ) {
+ $result = change_password($ldap, $userdn, $newpassword, $ad_mode,
$samba_mode, $hash);
+}
+
+#==============================================================================
# HTML
#==============================================================================
?>
@@ -143,14 +147,13 @@
?>
<?php
-if ( $pwd_show_policy ) {
- show_policy($messages,
- $pwd_min_length, $pwd_max_length,
- $pwd_min_lower, $pwd_min_upper,
- $pwd_min_digit, $pwd_min_special,
- $pwd_forbidden_chars
- );
-}
+show_policy($messages,
+ $pwd_min_length, $pwd_max_length,
+ $pwd_min_lower, $pwd_min_upper,
+ $pwd_min_digit, $pwd_min_special,
+ $pwd_forbidden_chars,
+ $pwd_show_policy, $result
+);
?>
<form action="#" method="post">
Modified: self-service-password/trunk/pages/resetbyquestions.php
===================================================================
--- self-service-password/trunk/pages/resetbyquestions.php 2010-07-17
13:36:45 UTC (rev 89)
+++ self-service-password/trunk/pages/resetbyquestions.php 2010-07-17
13:47:32 UTC (rev 90)
@@ -152,14 +152,13 @@
?>
<?php
-if ( $pwd_show_policy ) {
- show_policy($messages,
- $pwd_min_length, $pwd_max_length,
- $pwd_min_lower, $pwd_min_upper,
- $pwd_min_digit, $pwd_min_special,
- $pwd_forbidden_chars
- );
-}
+show_policy($messages,
+ $pwd_min_length, $pwd_max_length,
+ $pwd_min_lower, $pwd_min_upper,
+ $pwd_min_digit, $pwd_min_special,
+ $pwd_forbidden_chars,
+ $pwd_show_policy, $result
+);
?>
<form action="#" method="post">
Modified: self-service-password/trunk/pages/resetbytoken.php
===================================================================
--- self-service-password/trunk/pages/resetbytoken.php 2010-07-17 13:36:45 UTC
(rev 89)
+++ self-service-password/trunk/pages/resetbytoken.php 2010-07-17 13:47:32 UTC
(rev 90)
@@ -151,14 +151,13 @@
?>
<?php
-if ( $pwd_show_policy ) {
- show_policy($messages,
- $pwd_min_length, $pwd_max_length,
- $pwd_min_lower, $pwd_min_upper,
- $pwd_min_digit, $pwd_min_special,
- $pwd_forbidden_chars
- );
-}
+show_policy($messages,
+ $pwd_min_length, $pwd_max_length,
+ $pwd_min_lower, $pwd_min_upper,
+ $pwd_min_digit, $pwd_min_special,
+ $pwd_forbidden_chars,
+ $pwd_show_policy, $result
+);
?>
<form action="#" method="post">
_______________________________________________
ltb-changes mailing list
[email protected]
http://lists.ltb-project.org/listinfo/ltb-changes