/**
  * @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;
 }