diff --git a/src/Symfony/Component/Security/Core/User/UserChecker.php b/src/Symfony/Component/Security/Core/User/UserChecker.php index 8dde3a6670..ac577a37ba 100644 --- a/src/Symfony/Component/Security/Core/User/UserChecker.php +++ b/src/Symfony/Component/Security/Core/User/UserChecker.php @@ -32,22 +32,6 @@ class UserChecker implements UserCheckerInterface return; } - if (!$user->isCredentialsNonExpired()) { - $ex = new CredentialsExpiredException('User credentials have expired.'); - $ex->setUser($user); - throw $ex; - } - } - - /** - * {@inheritdoc} - */ - public function checkPostAuth(UserInterface $user) - { - if (!$user instanceof AdvancedUserInterface) { - return; - } - if (!$user->isAccountNonLocked()) { $ex = new LockedException('User account is locked.'); $ex->setUser($user); @@ -66,4 +50,20 @@ class UserChecker implements UserCheckerInterface throw $ex; } } + + /** + * {@inheritdoc} + */ + public function checkPostAuth(UserInterface $user) + { + if (!$user instanceof AdvancedUserInterface) { + return; + } + + if (!$user->isCredentialsNonExpired()) { + $ex = new CredentialsExpiredException('User credentials have expired.'); + $ex->setUser($user); + throw $ex; + } + } } diff --git a/src/Symfony/Component/Security/Tests/Core/User/UserCheckerTest.php b/src/Symfony/Component/Security/Tests/Core/User/UserCheckerTest.php index f28067f1dd..dca631146d 100644 --- a/src/Symfony/Component/Security/Tests/Core/User/UserCheckerTest.php +++ b/src/Symfony/Component/Security/Tests/Core/User/UserCheckerTest.php @@ -15,36 +15,6 @@ use Symfony\Component\Security\Core\User\UserChecker; class UserCheckerTest extends \PHPUnit_Framework_TestCase { - public function testCheckPreAuthNotAdvancedUserInterface() - { - $checker = new UserChecker(); - - $this->assertNull($checker->checkPreAuth($this->getMock('Symfony\Component\Security\Core\User\UserInterface'))); - } - - public function testCheckPreAuthPass() - { - $checker = new UserChecker(); - - $account = $this->getMock('Symfony\Component\Security\Core\User\AdvancedUserInterface'); - $account->expects($this->once())->method('isCredentialsNonExpired')->will($this->returnValue(true)); - - $this->assertNull($checker->checkPreAuth($account)); - } - - /** - * @expectedException \Symfony\Component\Security\Core\Exception\CredentialsExpiredException - */ - public function testCheckPreAuthCredentialsExpired() - { - $checker = new UserChecker(); - - $account = $this->getMock('Symfony\Component\Security\Core\User\AdvancedUserInterface'); - $account->expects($this->once())->method('isCredentialsNonExpired')->will($this->returnValue(false)); - - $checker->checkPreAuth($account); - } - public function testCheckPostAuthNotAdvancedUserInterface() { $checker = new UserChecker(); @@ -57,30 +27,60 @@ class UserCheckerTest extends \PHPUnit_Framework_TestCase $checker = new UserChecker(); $account = $this->getMock('Symfony\Component\Security\Core\User\AdvancedUserInterface'); - $account->expects($this->once())->method('isAccountNonLocked')->will($this->returnValue(true)); - $account->expects($this->once())->method('isEnabled')->will($this->returnValue(true)); - $account->expects($this->once())->method('isAccountNonExpired')->will($this->returnValue(true)); + $account->expects($this->once())->method('isCredentialsNonExpired')->will($this->returnValue(true)); $this->assertNull($checker->checkPostAuth($account)); } + /** + * @expectedException \Symfony\Component\Security\Core\Exception\CredentialsExpiredException + */ + public function testCheckPostAuthCredentialsExpired() + { + $checker = new UserChecker(); + + $account = $this->getMock('Symfony\Component\Security\Core\User\AdvancedUserInterface'); + $account->expects($this->once())->method('isCredentialsNonExpired')->will($this->returnValue(false)); + + $checker->checkPostAuth($account); + } + + public function testCheckPreAuthNotAdvancedUserInterface() + { + $checker = new UserChecker(); + + $this->assertNull($checker->checkPreAuth($this->getMock('Symfony\Component\Security\Core\User\UserInterface'))); + } + + public function testCheckPreAuthPass() + { + $checker = new UserChecker(); + + $account = $this->getMock('Symfony\Component\Security\Core\User\AdvancedUserInterface'); + $account->expects($this->once())->method('isAccountNonLocked')->will($this->returnValue(true)); + $account->expects($this->once())->method('isEnabled')->will($this->returnValue(true)); + $account->expects($this->once())->method('isAccountNonExpired')->will($this->returnValue(true)); + + $this->assertNull($checker->checkPreAuth($account)); + } + /** * @expectedException \Symfony\Component\Security\Core\Exception\LockedException */ - public function testCheckPostAuthAccountLocked() + public function testCheckPreAuthAccountLocked() { $checker = new UserChecker(); $account = $this->getMock('Symfony\Component\Security\Core\User\AdvancedUserInterface'); $account->expects($this->once())->method('isAccountNonLocked')->will($this->returnValue(false)); - $checker->checkPostAuth($account); + $checker->checkPreAuth($account); } /** * @expectedException \Symfony\Component\Security\Core\Exception\DisabledException */ - public function testCheckPostAuthDisabled() + public function testCheckPreAuthDisabled() { $checker = new UserChecker(); @@ -88,13 +88,13 @@ class UserCheckerTest extends \PHPUnit_Framework_TestCase $account->expects($this->once())->method('isAccountNonLocked')->will($this->returnValue(true)); $account->expects($this->once())->method('isEnabled')->will($this->returnValue(false)); - $checker->checkPostAuth($account); + $checker->checkPreAuth($account); } /** * @expectedException \Symfony\Component\Security\Core\Exception\AccountExpiredException */ - public function testCheckPostAuthAccountExpired() + public function testCheckPreAuthAccountExpired() { $checker = new UserChecker(); @@ -103,6 +103,6 @@ class UserCheckerTest extends \PHPUnit_Framework_TestCase $account->expects($this->once())->method('isEnabled')->will($this->returnValue(true)); $account->expects($this->once())->method('isAccountNonExpired')->will($this->returnValue(false)); - $checker->checkPostAuth($account); + $checker->checkPreAuth($account); } }