/** * Adds the public file directory in a workspace * * @param Workspace $workspace * * @return Directory */ public function addPublicFileDirectory(Workspace $workspace) { $directory = new Directory(); $dirName = $this->translator->trans('my_public_documents', array(), 'platform'); $directory->setName($dirName); $directory->setIsUploadDestination(true); $parent = $this->getNodeScheduledForInsert($workspace, $workspace->getName()); if (!$parent) { $parent = $this->resourceNodeRepo->findOneBy(array('workspace' => $workspace->getId(), 'parent' => $parent)); } $role = $this->roleManager->getRoleByName('ROLE_ANONYMOUS'); return $this->create($directory, $this->getResourceTypeByName('directory'), $workspace->getCreator(), $workspace, $parent, null, array('ROLE_ANONYMOUS' => array('open' => true, 'export' => true, 'create' => array(), 'role' => $role)), true); }