예제 #1
0
 public function testVerifyPassword()
 {
     $user = new User();
     $user->setPassword('qwerty1234');
     $this->assertTrue($user->verifyPassword('qwerty1234'));
     $this->assertFalse($user->verifyPassword('wrong1234'));
 }
 /**
  * @param User $user
  * @param string $password
  * @throws UserPasswordValidationException
  */
 public function assertPasswordValid(User $user, $password)
 {
     if (strlen($password) < 8) {
         throw new UserPasswordValidationException('Password must be at least 8 characters');
     }
     if ($user->verifyPassword($password)) {
         throw new UserPasswordValidationException('Invalid password');
     }
     $tooSimilarValues = [$user->getFirstName(), $user->getLastName(), $user->getFullName(), $user->getEmail()];
     foreach ($tooSimilarValues as $text) {
         if ($this->isTooSimilar($password, $text)) {
             throw new UserPasswordValidationException('Password is too similar to your name or email');
         }
     }
 }