/** * @param User $user */ public function soapInit($user) { $this->id = $user->id; $this->username = $user->username; $this->email = $user->email; $this->namePrefix = $user->namePrefix; $this->firstName = $user->firstName; $this->middleName = $user->middleName; $this->lastName = $user->lastName; $this->nameSuffix = $user->nameSuffix; $this->birthday = $user->birthday; $this->enabled = $user->enabled; $this->plainPassword = $user->plainPassword; $this->lastLogin = $user->lastLogin; $this->owner = $user->owner ? $user->owner->getId() : null; $this->roles = array(); foreach ($user->getRoles() as $role) { $this->roles[] = $role->getId(); } $this->groups = array(); foreach ($user->getGroups() as $group) { $this->groups[] = $group->getId(); } }
/** * Returns a list of ids of roles assigned ot user. * * @param User $user * * @return array Array of ids */ protected function getUserRoleIds(User $user) { // Get ids of all user roles. $roles = $user->getRoles(); $roleList = array_map(function ($value) { return $value->getId(); }, $roles); return $roleList; }
public function testGroups() { $user = new User(); $role = new Role('ROLE_FOO'); $group = new Group('Users'); $group->addRole($role); $this->assertNotContains($role, $user->getRoles()); $user->addGroup($group); $this->assertContains($group, $user->getGroups()); $this->assertContains('Users', $user->getGroupNames()); $this->assertTrue($user->hasRole($role)); $this->assertTrue($user->hasGroup('Users')); $user->removeGroup($group); $this->assertFalse($user->hasRole($role)); }
/** * Switches the security context to the given user * * @param User $user * * @return TokenInterface|null The previous security token * * @throws \UnexpectedValueException * @throws AccessDeniedException */ protected function impersonateUser(User $user) { $currentToken = $this->securityContext->getToken(); if (!$currentToken instanceof OrganizationContextTokenInterface) { throw new \UnexpectedValueException('The current security token must be aware of the organization.'); } $organization = $currentToken->getOrganizationContext(); // check if new user has access to the current organization if (!$user->hasOrganization($organization)) { throw new AccessDeniedException(); } $this->securityContext->setToken(new ImpersonationToken($user, $organization, $user->getRoles())); return $currentToken; }