Last active
December 27, 2015 11:49
-
-
Save sagotsky/7321750 to your computer and use it in GitHub Desktop.
Fixes password_policy's consecutive constraint
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/plugins/constraint/consecutive.inc b/plugins/constraint/consecutive.inc | |
index e6c3c3c..f79b7b1 100644 | |
--- a/plugins/constraint/consecutive.inc | |
+++ b/plugins/constraint/consecutive.inc | |
@@ -36,6 +36,6 @@ function password_policy_consecutive_admin_form($form, &$form_state, $constraint | |
* Admin form callback for consecutive character count constraint. | |
*/ | |
function password_policy_consecutive_constraint($password, $account, $constraint) { | |
- $pattern = '/(.)[\1]{' . ($constraint->config['consecutive_char_count'] - 1) . '}/'; | |
+ $pattern = '/(.)\1{' . ($constraint->config['consecutive_char_count'] - 1) . '}/'; | |
return !preg_match($pattern, $password); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/password_policy.test b/password_policy.test | |
index 0b68912..78936be 100644 | |
--- a/password_policy.test | |
+++ b/password_policy.test | |
@@ -139,12 +139,12 @@ class PasswordPolicyConstraintsTestCase extends PasswordPolicyTestBase { | |
*/ | |
public function testConsecutiveConstraint() { | |
$config = array('consecutive' => array( | |
- 'consecutive_char_count' => 1, | |
+ 'consecutive_char_count' => 2, | |
)); | |
$policy = $this->createPolicy($config); | |
- $this->assertTrue($this->checkPolicy($policy, ''), t('Consecutive character count constraint passes with less than maximum consecutive characters.'), t('Constraint')); | |
- $this->assertFalse($this->checkPolicy($policy, 'a'), t('Consecutive character count constraint fails with exact maximum consecutive characters.'), t('Constraint')); | |
- $this->assertFalse($this->checkPolicy($policy, 'aa'), t('Consecutive character count constraint fails with more than maximum consecutive characters.'), t('Constraint')); | |
+ $this->assertTrue($this->checkPolicy($policy, 'a'), t('Consecutive character count constraint passes with fewer than maximum consecutive characters.'), t('Constraint')); | |
+ $this->assertFalse($this->checkPolicy($policy, 'aa'), t('Consecutive character count constraint fails with exact maximum consecutive characters.'), t('Constraint')); | |
+ $this->assertFalse($this->checkPolicy($policy, 'aaa'), t('Consecutive character count constraint fails with more than maximum consecutive characters.'), t('Constraint')); | |
} | |
/** | |
diff --git a/plugins/constraint/consecutive.inc b/plugins/constraint/consecutive.inc | |
index abc4a5d..6f324f7 100644 | |
--- a/plugins/constraint/consecutive.inc | |
+++ b/plugins/constraint/consecutive.inc | |
@@ -36,6 +36,6 @@ function password_policy_consecutive_admin_form($form, &$form_state, $constraint | |
* Admin form callback for consecutive character count constraint. | |
*/ | |
function password_policy_consecutive_constraint($password, $account, $constraint) { | |
- $pattern = '/(.)[\1]{' . ($constraint->config['consecutive_char_count'] - 1) . '}/'; | |
+ $pattern = '/(.)\1{' . ($constraint->config['consecutive_char_count'] - 1) . '}/'; | |
return !preg_match($pattern, $password); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment