예제 #1
0
 /**
  * @param \Claroline\CoreBundle\Entity\Workspace\Workspace $source
  * @param \Claroline\CoreBundle\Entity\Workspace\Workspace $workspace
  */
 private function duplicateOrderedTools(Workspace $source, Workspace $workspace)
 {
     $orderedTools = $source->getOrderedTools();
     $workspaceRoles = $this->getArrayRolesByWorkspace($workspace);
     foreach ($orderedTools as $orderedTool) {
         $workspaceOrderedTool = $this->toolManager->addWorkspaceTool($orderedTool->getTool(), $orderedTool->getOrder(), $orderedTool->getName(), $workspace);
         $rights = $orderedTool->getRights();
         foreach ($rights as $right) {
             $role = $right->getRole();
             if ($role->getType() === 1) {
                 $this->toolRightsManager->createToolRights($workspaceOrderedTool, $role, $right->getMask());
             } else {
                 $key = $role->getTranslationKey();
                 if (isset($workspaceRoles[$key]) && !empty($workspaceRoles[$key])) {
                     $this->toolRightsManager->createToolRights($workspaceOrderedTool, $workspaceRoles[$key], $right->getMask());
                 }
             }
         }
     }
 }
예제 #2
0
 public function export(Workspace $workspace, array &$files, $object)
 {
     $data = [];
     $workspaceTools = $workspace->getOrderedTools();
     $i = 0;
     foreach ($workspaceTools as $workspaceTool) {
         $roles = array();
         foreach ($workspaceTool->getRights() as $right) {
             $roles[] = array('name' => $this->roleManager->getWorkspaceRoleBaseName($right->getRole()));
         }
         $tool = array('type' => $workspaceTool->getTool()->getName(), 'translation' => $workspaceTool->getTool()->getDisplayName(), 'roles' => $roles);
         $importer = $this->getImporterByName($workspaceTool->getTool()->getName());
         if ($importer) {
             $tool['data'] = $importer->export($workspace, $files, null);
         }
         $data[$i] = array('tool' => $tool);
         $i++;
     }
     return $data;
 }