/** * @param \Claroline\CoreBundle\Entity\Workspace\Workspace $source * @param \Claroline\CoreBundle\Entity\Workspace\Workspace $workspace * @param \Claroline\CoreBundle\Entity\User $user */ private function duplicateWorkspaceRoles(Workspace $source, Workspace $workspace, User $user) { $guid = $workspace->getGuid(); $roles = $source->getRoles(); $unusedRolePartName = '_' . $source->getGuid(); foreach ($roles as $role) { $roleName = str_replace($unusedRolePartName, '', $role->getName()); $createdRole = $this->roleManager->createWorkspaceRole($roleName . '_' . $guid, $role->getTranslationKey(), $workspace, $role->isReadOnly()); if ($roleName === 'ROLE_WS_MANAGER') { $user->addRole($createdRole); $this->om->persist($user); } } }
public function export(Workspace $workspace, array &$files, $object) { $data = []; foreach ($workspace->getRoles() as $role) { if ($role !== $this->roleManager->getManagerRole($workspace)) { $data[] = ['role' => ['name' => $this->roleManager->getWorkspaceRoleBaseName($role), 'translation' => $role->getTranslationKey(), 'is_base_role' => false]]; } } return $data; }