/** * Wordpress user login hook method. * * @param WordpressEvent $event * * @see http://codex.wordpress.org/Plugin_API/Action_Reference/wp_login */ public function onLogin(WordpressEvent $event) { $wpUser = $event->getParameter('user'); $user = $this->userManager->find($wpUser->data->ID); $user->setWordpressRoles($wpUser->roles); $token = new UsernamePasswordToken($user, $user->getPass(), $this->firewall, $user->getRoles()); $this->tokenStorage->setToken($token); $this->session->set('_security_' . $this->firewall, serialize($token)); }
/** * Tests onLogin() method. */ public function testOnLogin() { // Given $wpUserData = new \stdClass(); $wpUserData->ID = 1; $wpUser = new \stdClass(); $wpUser->data = $wpUserData; $wpUser->roles = ['administrator']; $event = $this->getMock('Parenthesis\\WPBundle\\Event\\WordpressEvent'); $event->expects($this->once())->method('getParameter')->will($this->returnValue($wpUser)); $user = $this->getMock('Parenthesis\\WPBundle\\Entity\\User'); $user->expects($this->once())->method('setWordpressRoles')->with($wpUser->roles); $user->expects($this->once())->method('getPass')->will($this->returnValue(1234)); $user->expects($this->once())->method('getRoles')->will($this->returnValue(['ROLE_WP_ADMINISTRATOR'])); $this->userManager->expects($this->once())->method('find')->will($this->returnValue($user)); $this->tokenStorage->expects($this->once())->method('setToken'); // When - Then $this->listener->onLogin($event); }