/** * @param \Claroline\CoreBundle\Entity\Workspace\Workspace $workspace * @param \Claroline\CoreBundle\Entity\User $user * * @return \Claroline\CoreBundle\Entity\User */ public function addUserAction(Workspace $workspace, User $user) { $role = $this->roleManager->getCollaboratorRole($workspace); $userRoles = $this->roleManager->getWorkspaceRolesForUser($user, $workspace); if (count($userRoles) === 0) { $this->roleManager->associateRole($user, $role); $this->dispatcher->dispatch('claroline_workspace_register_user', 'WorkspaceAddUser', [$role, $user]); } $token = new UsernamePasswordToken($user, null, 'main', $user->getRoles()); $this->container->get('security.context')->setToken($token); return $user; }