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

Reply via email to