/** * @param InteractiveLoginEvent $event */ public function onLogin(InteractiveLoginEvent $event) { $user = $event->getAuthenticationToken()->getUser(); if ($user instanceof LoginInfoInterface) { $user->setLastLogin(new \DateTime('now', new \DateTimeZone('UTC')))->setLoginCount($user->getLoginCount() + 1); /** @var UserInterface $user */ $this->userManager->updateUser($user); } }
public function testUpdateUser() { $password = '******'; $encodedPassword = '******'; $user = $this->getUser(true); $user->setUsername(self::TEST_NAME); $user->setEmail(self::TEST_EMAIL); $user->setPlainPassword($password); $encoder = $this->getMock('Symfony\\Component\\Security\\Core\\Encoder\\PasswordEncoderInterface'); $encoder->expects($this->once())->method('encodePassword')->with($user->getPlainPassword(), $user->getSalt())->will($this->returnValue($encodedPassword)); $this->ef->expects($this->once())->method('getEncoder')->with($user)->will($this->returnValue($encoder)); $this->om->expects($this->once())->method('persist')->with($this->equalTo($user)); $this->om->expects($this->once())->method('flush'); $this->userManager->updateUser($user); $this->assertEquals(self::TEST_EMAIL, $user->getEmail()); $this->assertEquals($encodedPassword, $user->getPassword()); }