/** * @param mixed $object * @param IMetaData $metaData * @param String $params * @throws EyeException * @throws EyeErrorException */ public function storeMeta($object, IMetaData $metaData = null, $params) { if (!$object instanceof EyeUserFile) { throw new EyeInvalidArgumentException('$object must be an EyeUserFile.'); } $meta = $this->retrieveMeta($object, $params); SecurityManager::getInstance()->checkPermission($metaData, new MetaDataPermission('write', $meta, $object)); $urlParts = $object->getURLComponents(); if ($urlParts['path'] == '/') { $filepath = $this->getUserMetaFilesPath($urlParts['principalname']) . '/' . USERS_FILES_DIR . USERS_METAFILES_EXTENSION; } else { $filepath = $this->getUserMetaFilesPath($urlParts['principalname']) . '/' . USERS_FILES_DIR . $urlParts['path'] . USERS_METAFILES_EXTENSION; } $dir = dirname($filepath); if (!is_dir($dir)) { if (!mkdir($dir, 0777, true)) { throw new EyeIOException('Unable to create necessary directories for meta file ' . $filepath . '.'); } } $provider = new SimpleXMLMetaProvider((string) $params, array(SimpleXMLMetaProvider::PARAM_FILEPATH => $filepath)); $provider->storeMeta(null, $metaData); }
/** * @param mixed $object * @param IMetaData $metaData * @param String $params * @throws EyeException * @throws EyeErrorException */ public function storeMeta($object, IMetaData $metaData = null, $params) { if (!$object instanceof SecurityManager) { throw new EyeInvalidArgumentException('$object must be an SecurityManager'); } $meta = $this->retrieveMeta($object, $params); SecurityManager::getInstance()->checkPermission($meta, new MetaDataPermission('write', $metaData, $object)); $filepath = SYSTEM_META_CONFIGURATION_PATH . 'system.xml'; $provider = new SimpleXMLMetaProvider((string) $params, array(SimpleXMLMetaProvider::PARAM_FILEPATH => $filepath, SimpleXMLMetaProvider::PARAM_FORMATOUTPUT => true)); $meta = $provider->storeMeta(null, $metaData); }
/** * @param mixed $object * @param IMetaData $metaData * @param String $params * @throws EyeException * @throws EyeErrorException */ public function storeMeta($object, IMetaData $metaData = null, $params) { if (!$object instanceof EyeosUser) { throw new EyeInvalidArgumentException('$object must be an EyeosUser.'); } $meta = $this->retrieveMeta($object, $params); SecurityManager::getInstance()->checkPermission($meta, new MetaDataPermission('write', $metaData, $object)); $filepath = $this->getUserSettingsPath($object); $dir = dirname($filepath); if (!is_dir($dir)) { if (!mkdir($dir, 0777, true)) { throw new EyeIOException('Unable to create necessary directories for meta file ' . $filepath . '.'); } } $provider = new SimpleXMLMetaProvider((string) $params, array(SimpleXMLMetaProvider::PARAM_FILEPATH => $filepath, SimpleXMLMetaProvider::PARAM_FORMATOUTPUT => true)); $provider->storeMeta(null, $metaData); }
/** * @param mixed $object * @param IMetaData $metaData * @param String $params * @throws EyeException * @throws EyeErrorException */ public function storeMeta($object, IMetaData $metaData = null, $params) { if (!$object instanceof EyeosApplicationDescriptor) { throw new EyeInvalidArgumentException('$object must be an EyeosApplicationDescriptor.'); } //{ // TODO: Permission checks here //} $filepath = $object->getPath() . '/info.xml'; $provider = new SimpleXMLMetaProvider((string) $params, array(SimpleXMLMetaProvider::PARAM_FILEPATH => $filepath, SimpleXMLMetaProvider::PARAM_FORMATOUTPUT => true)); $meta = $provider->storeMeta(null, $metaData); }