/** * @param mixed $object * @param String $params * @return IMetaData * @throws EyeException * @throws EyeErrorException */ public function retrieveMeta($object, $params) { if (!$object instanceof EyeosApplicationDescriptor) { throw new EyeInvalidArgumentException('$object must be an EyeosApplicationDescriptor.'); } $filepath = $object->getPath() . '/info.xml'; $provider = new SimpleXMLMetaProvider((string) $params, array(SimpleXMLMetaProvider::PARAM_FILEPATH => $filepath)); $meta = $provider->retrieveMeta(null); // no meta found (info.xml does not exist), generate default one if ($meta === null) { $meta = MetaManager::getInstance()->getNewMetaDataInstance($object); $meta->setAll(array('eyeos.application.name' => $object->getName(), 'eyeos.application.author' => '<Unknown>', 'eyeos.application.version' => '<Unknown>', 'eyeos.application.description' => 'This is an autogenerated default metadata content because no file named "info.xml" can be found in the application\'s directory.', 'eyeos.application.license' => '<Unknown>')); } if ($meta->get('eyeos.application.systemParameters') === null) { $meta->set('eyeos.application.systemParameters', array('listable' => 'true', 'owner' => 'root', 'group' => 'users', 'permissions' => '---x--x--x', 'anonymous' => 'false', 'suid' => 'false')); } return $meta; }
/** * @param mixed $object * @param String $params * @return IMetaData * @throws EyeException * @throws EyeErrorException */ public function retrieveMeta($object, $params) { if (!$object instanceof EyeUserFile) { throw new EyeInvalidArgumentException('$object must be an EyeUserFile.'); } $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; } $provider = new SimpleXMLMetaProvider((string) $params, array(SimpleXMLMetaProvider::PARAM_FILEPATH => $filepath)); $meta = null; try { $meta = $provider->retrieveMeta(null); } catch (EyeFileNotFoundException $e) { } if ($meta === null && $object->exists()) { $owner = UMManager::getInstance()->getUserByName($urlParts['principalname']); $primaryGroup = UMManager::getInstance()->getGroupById($owner->getPrimaryGroupId()); $meta = MetaManager::getInstance()->getNewMetaDataInstance($object); $meta->setAll(array(EyeosAbstractVirtualFile::METADATA_KEY_OWNER => $owner->getName(), EyeosAbstractVirtualFile::METADATA_KEY_GROUP => $primaryGroup->getName(), EyeosAbstractVirtualFile::METADATA_KEY_PERMISSIONS => '-rw-------', EyeosAbstractVirtualFile::METADATA_KEY_CREATIONTIME => null, EyeosAbstractVirtualFile::METADATA_KEY_MODIFICATIONTIME => null)); if ($object->isDirectory()) { $meta->set(EyeosAbstractVirtualFile::METADATA_KEY_PERMISSIONS, '-rwx------'); } } if ($meta !== null) { SecurityManager::getInstance()->checkPermission($meta, new MetaDataPermission('read', null, $object)); } return $meta; }
/** * @param mixed $object * @param String $params * @return IMetaData * @throws EyeException * @throws EyeErrorException */ public function retrieveMeta($object, $params) { if (!$object instanceof EyeosUser) { throw new EyeInvalidArgumentException('$object must be an EyeosUser.'); } $filepath = $this->getUserSettingsPath($object); $provider = new SimpleXMLMetaProvider((string) $params, array(SimpleXMLMetaProvider::PARAM_FILEPATH => $filepath)); $meta = $provider->retrieveMeta(null); if ($meta === null) { return MetaManager::getInstance()->getNewMetaDataInstance($object); } SecurityManager::getInstance()->checkPermission($meta, new MetaDataPermission('read', $meta, $object)); return $meta; }
/** * @param mixed $object * @param String $params * @return IMetaData * @throws EyeException * @throws EyeErrorException */ public function retrieveMeta($object, $params) { if (!$object instanceof SecurityManager) { throw new EyeInvalidArgumentException('$object must be an SecurityManager.'); } $filepath = SYSTEM_META_CONFIGURATION_PATH . 'system.xml'; $provider = new SimpleXMLMetaProvider((string) $params, array(SimpleXMLMetaProvider::PARAM_FILEPATH => $filepath)); $meta = $provider->retrieveMeta(null); return $meta; }