/**
  * @inheritdoc
  */
 public function getChildFolders(\Conjoon\Data\Entity\Mail\MailFolderEntity $folder)
 {
     $em = $this->getEntityManager();
     $query = $em->createQuery("SELECT a FROM \\Conjoon\\Data\\Entity\\Mail\\DefaultMailFolderEntity a" . " WHERE a.parent=?1");
     $query->setParameter(1, $folder->getId());
     try {
         $res = $query->getResult();
     } catch (\Doctrine\ORM\NoResultException $e) {
         return array();
     }
     return $res;
 }
 /**
  * @inheritdoc
  */
 public function moveMessagesFromFolder(\Conjoon\Data\Entity\Mail\MailFolderEntity $sourceEntity, \Conjoon\Data\Entity\Mail\MailFolderEntity $targetEntity)
 {
     $em = $this->getEntityManager();
     $query = $em->createQuery("UPDATE \\Conjoon\\Data\\Entity\\Mail\\DefaultMessageEntity a" . " SET a.groupwareEmailFolders=?1 WHERE a.groupwareEmailFolders=?2");
     $query->setParameter(1, $targetEntity->getId());
     $query->setParameter(2, $sourceEntity->getId());
     $res = $query->getResult();
     return $res;
 }
 /**
  * Helper function for #isMetaInfoInFolderHierarchyUnique to recurse into
  * child folders and check for unique meta info.
  *
  * @param \Conjoon\Data\Entity\Mail\MailFolderEntity $folder
  * @param $metaInfo string
  *
  * @return boolean
  *
  * @throws FolderServiceException
  * @throws FolderDoesNotExistException
  */
 protected function checkMetaInfoType(\Conjoon\Data\Entity\Mail\MailFolderEntity $folder, $metaInfo)
 {
     if ($folder->getMetaInfo() !== $metaInfo) {
         return false;
     }
     $childFolders = $this->getChildFolderEntities($folder);
     foreach ($childFolders as $childFolder) {
         if ($this->checkMetaInfoType($childFolder, $metaInfo) !== true) {
             return false;
         }
     }
     return true;
 }
 /**
  * Returns false if the $folderEntity or any of its child folders is
  * not accessible by the user bound to this service.
  *
  * @param \Conjoon\Data\Entity\Mail\MailFolderEntity
  * @param bool $recurse
  * @return bool
  */
 protected function checkFolderHierarchyAccessible(\Conjoon\Data\Entity\Mail\MailFolderEntity $folderEntity, $recurse = false)
 {
     /**
      * @refactor uses old implementation
      */
     $OWNER_STR = \Conjoon_Modules_Groupware_Email_Folder_Model_FoldersUsers::OWNER;
     $foldersUsers = new \Conjoon_Modules_Groupware_Email_Folder_Model_FoldersUsers();
     $checkNodeId = $folderEntity->getId();
     $rel = $foldersUsers->getRelationShipForFolderAndUser($checkNodeId, $this->user->getId());
     $isAccessible = $rel === $OWNER_STR;
     if ($isAccessible && $recurse) {
         $childFolders = $this->folderCommons->getChildFolderEntities($folderEntity);
         foreach ($childFolders as $childFolder) {
             $isAccessible = $this->checkFolderHierarchyAccessible($childFolder, $recurse);
             if (!$isAccessible) {
                 break;
             }
         }
     }
     return $isAccessible;
 }