/** * @param \Claroline\CoreBundle\Entity\AbstractRoleSubject $subject * @param \Claroline\CoreBundle\Entity\Workspace\Workspace $workspace */ public function resetWorkspaceRolesForSubject(AbstractRoleSubject $subject, Workspace $workspace) { $roles = $subject instanceof \Claroline\CoreBundle\Entity\Group ? $this->roleRepo->findByGroupAndWorkspace($subject, $workspace) : $this->roleRepo->findByUserAndWorkspace($subject, $workspace); $this->checkWorkspaceRoleEditionIsValid(array($subject), $workspace, $roles); $this->om->startFlushSuite(); foreach ($roles as $role) { $this->dissociateRole($subject, $role); } $this->om->endFlushSuite(); }