public function createNote($resourceId, NoteAction $note)
 {
     $resourceNode = $this->resourceNodeRepository->find($resourceId);
     $note->setResource($resourceNode);
     $this->em->persist($note);
     $this->em->flush();
 }
 public function createShare(Request $request, ShareAction $share)
 {
     $return = array();
     $resourceId = $request->get("resourceId");
     if ($resourceId === null) {
         $url = $request->get("url");
         if ($url === null) {
             throw new BadRequestHttpException();
         }
         $share->setUrl($url);
         $return["url"] = $url;
         $title = $request->get("title");
         $share->setTitle($title);
         if ($title !== null) {
             $return["title"] = $title;
         }
     } else {
         $resourceNode = $this->resourceNodeRepository->find($resourceId);
         $share->setResource($resourceNode);
         $return["title"] = $resourceNode->getName();
         $return["url"] = $this->router->generate("claro_resource_open_short", array("node" => $resourceNode->getId()), true);
     }
     $network = $request->get("network");
     $share->setNetwork($network);
     $this->em->persist($share);
     $this->wallItemManager->createWallItem($share);
     $this->em->flush();
     return $return;
 }
 public function createComment($resourceId, CommentAction $comment)
 {
     $resourceNode = $this->resourceNodeRepository->find($resourceId);
     $comment->setResource($resourceNode);
     $this->em->persist($comment);
     $this->wallItemManager->createWallItem($comment);
     $this->em->flush();
 }
Beispiel #4
0
 /**
  * Create rights wich weren't created for every descendants and returns every rights of
  * every descendants (include rights wich weren't created).
  *
  * @param \Claroline\CoreBundle\Entity\Role                  $role
  * @param \Claroline\CoreBundle\Entity\Resource\ResourceNode $node
  *
  * @return \Claroline\CoreBundle\Entity\Resource\ResourceRights[]
  */
 public function updateRightsTree(Role $role, ResourceNode $node)
 {
     $this->log('Updating the right tree');
     $alreadyExistings = $this->rightsRepo->findRecursiveByResourceAndRole($node, $role);
     $descendants = $this->resourceRepo->findDescendants($node, true);
     $finalRights = array();
     foreach ($descendants as $descendant) {
         $found = false;
         foreach ($alreadyExistings as $existingRight) {
             if ($existingRight->getResourceNode() === $descendant) {
                 $finalRights[] = $existingRight;
                 $found = true;
             }
         }
         if (!$found) {
             $rights = $this->om->factory('Claroline\\CoreBundle\\Entity\\Resource\\ResourceRights');
             $rights->setRole($role);
             $rights->setResourceNode($descendant);
             $this->om->persist($rights);
             $finalRights[] = $rights;
         }
     }
     $this->om->flush();
     $this->log('Right tree updated');
     return $finalRights;
 }
Beispiel #5
0
 public function getLastIndex(ResourceNode $parent)
 {
     try {
         $lastIndex = $this->resourceNodeRepo->findLastIndex($parent);
     } catch (\Doctrine\ORM\NonUniqueResultException $e) {
         $lastIndex = 0;
     } catch (\Doctrine\ORM\NoResultException $e) {
         $lastIndex = 0;
     }
     return $lastIndex;
 }
 public function updatePublished($resourceId, $extraDataPublished)
 {
     $published = 0;
     if ($extraDataPublished == "on") {
         $published = 1;
     }
     $resourceNodes = $this->resourceNodeRepo->findBy(array('id' => $resourceId));
     foreach ($resourceNodes as $resourceNode) {
         $resourceNode->setPublished($published);
         $this->em->persist($resourceNode);
     }
     $this->em->flush();
     return $resourceNodes;
 }
 public function createLike(Request $request, LikeAction $like)
 {
     $resourceId = $request->get('resourceId');
     if ($resourceId === null) {
         $url = $request->get('url');
         $title = $request->get('title');
         $like->setUrl($url);
         $like->setTitle($title);
     } else {
         $resourceNode = $this->resourceNodeRepository->find($resourceId);
         $like->setResource($resourceNode);
     }
     $this->em->persist($like);
     $this->wallItemManager->createWallItem($like);
     $this->em->flush();
     return $like;
 }
Beispiel #8
0
 public function checkIntegrity()
 {
     $resources = $this->resourceNodeRepo->findAll();
     $batchSize = 500;
     $i = 0;
     foreach ($resources as $resource) {
         if ($resource->getWorkspace() === null && ($parent = $resource->getParent())) {
             if ($workspace = $parent->getWorkspace()) {
                 $resource->setWorkspace($workspace);
                 $this->om->persist($workspace);
                 $this->log('Set workspace ' . $workspace->getName() . ' for ' . $resource->getName());
                 $i++;
                 if ($batchSize % $i === 0) {
                     $this->om->flush();
                 }
             }
         }
     }
     $this->om->flush();
 }
 public function getResourcesByIds(array $roles, $user, array $ids)
 {
     return count($ids) > 0 ? $this->resourceNodeRepo->findResourcesByIds($roles, $user, $ids) : [];
 }