/** * resolves a single path * * @param String $_path * @return array of container ids */ protected function _resolvePath($_path) { $containerIds = array(); if ($containerId = Tinebase_Model_Container::pathIsContainer($_path)) { if ($this->_options['ignoreAcl'] == TRUE) { $containerIds[] = $containerId; } else { if (Tinebase_Core::getUser()->hasGrant($containerId, $this->_requiredGrants)) { $containerIds[] = $containerId; } } } else { if ($ownerId = Tinebase_Model_Container::pathIsPersonalNode($_path)) { $containerIds = $this->_resolveContainerNode('personal', $ownerId); } else { $node = $_path == '/' ? 'all' : substr($_path, 1); $node = $node === 'personal' ? Tinebase_Model_Container::TYPE_OTHERUSERS : $node; $containerIds = $this->_resolveContainerNode($node); } } return $containerIds; }
/** * return a container identified by path * * @param string $_path the path to the container * @param bool $_getDeleted get deleted records * @return Tinebase_Model_Container * @throws Tinebase_Exception_NotFound */ public function getByPath($_path, $_getDeleted = FALSE) { if ($containerId = Tinebase_Model_Container::pathIsContainer($_path) === false) { throw new Tinebase_Exception_UnexpectedValue("Invalid path {$_path} supplied."); } return $this->getContainerById($containerId, $_getDeleted); }