示例#1
0
 /**
  * Returns true if the folder may be deleted, otherwise false.
  *
  * @param integer $id The id of the folder to delete
  * @param integer $userId If specified, the owner status will also be
  * considered
  *
  * @return boolean true if the folder may be deleted, otherwise false
  */
 public function isFolderDeletable($id, $userId = -1)
 {
     $where = $this->getAdapter()->quoteInto('id = ?', $id, 'INTEGER');
     // check first if the folder may get deleted
     $select = $this->select()->from($this, array('is_locked'))->where($where);
     $row = $this->fetchRow($select);
     if ($row) {
         if ($row->is_locked) {
             return false;
         }
     } else {
         return false;
     }
     if ($userId != -1) {
         /**
          * @see Conjoon_Modules_Groupware_Email_Folder_Model_FoldersUsers
          */
         require_once 'Conjoon/Modules/Groupware/Email/Folder/Model/FoldersUsers.php';
         $foldersUsers = new Conjoon_Modules_Groupware_Email_Folder_Model_FoldersUsers();
         $ret = $foldersUsers->getRelationShipForFolderAndUser($id, $userId);
         if ($ret === Conjoon_Modules_Groupware_Email_Folder_Model_FoldersUsers::OWNER) {
             return true;
         }
     }
     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;
 }