Author: jclarke
Date: 2010-07-19 12:10:04 +0200 (Mon, 19 Jul 2010)
New Revision: 92

Modified:
   self-service-password/trunk/config.inc.php
   self-service-password/trunk/functions.inc.php
   self-service-password/trunk/lang/en.inc.php
   self-service-password/trunk/pages/change.php
Log:
Check that user doesn't reuse the same password in password policy. Fixes #259.

Modified: self-service-password/trunk/config.inc.php
===================================================================
--- self-service-password/trunk/config.inc.php  2010-07-17 13:59:47 UTC (rev 91)
+++ self-service-password/trunk/config.inc.php  2010-07-19 10:10:04 UTC (rev 92)
@@ -68,6 +68,8 @@
 $pwd_special_chars = "^a-zA-Z0-9";
 # Forbidden characters
 #$pwd_forbidden_chars = "@%";
+# Don't reuse the same password as currently
+$pwd_no_reuse = true;
 # Show policy constraints message:
 # always
 # never

Modified: self-service-password/trunk/functions.inc.php
===================================================================
--- self-service-password/trunk/functions.inc.php       2010-07-17 13:59:47 UTC 
(rev 91)
+++ self-service-password/trunk/functions.inc.php       2010-07-19 10:10:04 UTC 
(rev 92)
@@ -99,12 +99,12 @@
 
 # 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, $pwd_show_policy, $result ) {
+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_no_reuse, $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; }
+        if ( !preg_match( 
"/tooshort|toobig|minlower|minupper|mindigit|minspecial|forbiddenchars|sameasold/"
 , $result) ) { return; }
     }
 
     # Display bloc
@@ -118,13 +118,14 @@
     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"; }
+    if ( $pwd_no_reuse        ) { echo "<li>".$messages["policynoreuse"]       
                          ."\n"; }
     echo "</ul>\n";
     echo "</div>\n";
 }
 
 # Check password strength
 # @return result code
-function check_password_strength( $password, $pwd_special_chars, 
$pwd_forbidden_chars, $pwd_min_length, $pwd_max_length, $pwd_min_lower, 
$pwd_min_upper, $pwd_min_digit, $pwd_min_special ) {
+function check_password_strength( $password, $oldpassword, $pwd_special_chars, 
$pwd_forbidden_chars, $pwd_min_length, $pwd_max_length, $pwd_min_lower, 
$pwd_min_upper, $pwd_min_digit, $pwd_min_special, $pwd_no_reuse ) {
 
     $result = "";
 
@@ -161,6 +162,9 @@
     # Forbidden chars
     if ( $forbidden > 0 ) { $result="forbiddenchars"; }
 
+    # Same as old password?
+    if ( $pwd_no_reuse and $password === $oldpassword ) { $result="sameasold"; 
}
+
     return $result;
 }
 

Modified: self-service-password/trunk/lang/en.inc.php
===================================================================
--- self-service-password/trunk/lang/en.inc.php 2010-07-17 13:59:47 UTC (rev 91)
+++ self-service-password/trunk/lang/en.inc.php 2010-07-19 10:10:04 UTC (rev 92)
@@ -45,6 +45,7 @@
 $messages['minupper'] = "Your password has not enough upper characters";
 $messages['mindigit'] = "Your password has not enough digits";
 $messages['minspecial'] = "Your password has not enough special characters";
+$messages['sameasold'] = "Your new password is identical to your old password";
 $messages['policy'] = "Your password should respect the following 
constraints:";
 $messages['policyminlength'] = "Minimal length:";
 $messages['policymaxlength'] = "Maximal length:";
@@ -54,6 +55,7 @@
 $messages['policyminspecial'] = "Minimal special characters:";
 $messages['forbiddenchars'] = "You password contains forbidden characters";
 $messages['policyforbiddenchars'] = "Forbidden characters:";
+$messages['policynoreuse'] = "Your new password may not be the same as your 
old password";
 $messages['questions']['birthday'] = "What is your birthday?";
 $messages['questions']['color'] = "What is your favorite color?";
 $messages['password'] = "Password";

Modified: self-service-password/trunk/pages/change.php
===================================================================
--- self-service-password/trunk/pages/change.php        2010-07-17 13:59:47 UTC 
(rev 91)
+++ self-service-password/trunk/pages/change.php        2010-07-19 10:10:04 UTC 
(rev 92)
@@ -116,7 +116,7 @@
 # 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 );
+    $result = check_password_strength( $newpassword, $oldpassword, 
$pwd_special_chars, $pwd_forbidden_chars, $pwd_min_length, $pwd_max_length, 
$pwd_min_lower, $pwd_min_upper, $pwd_min_digit, $pwd_min_special, $pwd_no_reuse 
);
 }
 
 
@@ -152,6 +152,7 @@
     $pwd_min_lower, $pwd_min_upper,
     $pwd_min_digit, $pwd_min_special,
     $pwd_forbidden_chars,
+    $pwd_no_reuse,
     $pwd_show_policy, $result
 );
 ?>

_______________________________________________
ltb-changes mailing list
[email protected]
http://lists.ltb-project.org/listinfo/ltb-changes

Reply via email to