/**
  * 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));
 }
 /**
  * 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(), 'secured_area', $user->getRoles());
     $this->securityContext->setToken($token);
     $this->session->set('token', $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('Ekino\\WordpressBundle\\Event\\WordpressEvent');
     $event->expects($this->once())->method('getParameter')->will($this->returnValue($wpUser));
     $user = $this->getMock('Ekino\\WordpressBundle\\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);
 }