/**
  * @param TokenStorageInterface $tokenStorage
  * @param ContributorInterface  $clientDiDefinitionsProvider
  */
 public function __construct(TokenStorageInterface $tokenStorage, ContributorInterface $clientDiDefinitionsProvider)
 {
     $this->items = array(new CallbackConfigMerger(function (array $currentConfig) use($tokenStorage) {
         // we are not making sure that user is authenticated here because we expect that this
         // callback is invoked only when user is already authenticated (invoked from behind a firewall)
         if ($token = $tokenStorage->getToken()) {
             $roles = array();
             foreach ($token->getRoles() as $role) {
                 $roles[] = $role->getRole();
             }
             return array_merge($currentConfig, array('roles' => $roles, 'userProfile' => Authenticator::userToArray($token->getUser())));
         } else {
             return $currentConfig;
         }
     }), new CallbackConfigMerger(function (array $currentConfig) use($clientDiDefinitionsProvider) {
         return array_merge($currentConfig, array('serviceDefinitions' => $clientDiDefinitionsProvider->getItems()));
     }));
 }
示例#2
0
 public function testUserToArray()
 {
     $user = \Phake::mock(User::clazz());
     \Phake::when($user)->getId()->thenReturn(777);
     \Phake::when($user)->getFullName()->thenReturn('John Doe');
     \Phake::when($user)->getEmail()->thenReturn('*****@*****.**');
     \Phake::when($user)->getUsername()->thenReturn('john.doe');
     $result = Authenticator::userToArray($user);
     $this->assertTrue(is_array($result));
     $this->assertArrayHasKey('id', $result);
     $this->assertArrayHasKey('name', $result);
     $this->assertArrayHasKey('email', $result);
     $this->assertArrayHasKey('username', $result);
     $this->assertEquals(777, $result['id']);
     $this->assertEquals('John Doe', $result['name']);
     $this->assertEquals('*****@*****.**', $result['email']);
     $this->assertEquals('john.doe', $result['username']);
 }