/** * Copy legacy storage options into the given storage config object. * * @param StorageConfig $storageConfig storage config to populate * @param string $mountType mount type * @param string $applicable applicable user or group * @param array $storageOptions legacy storage options * * @return StorageConfig populated storage config */ protected function populateStorageConfigWithLegacyOptions(&$storageConfig, $mountType, $applicable, $storageOptions) { $storageConfig->setBackendClass($storageOptions['class']); $storageConfig->setBackendOptions($storageOptions['options']); if (isset($storageOptions['mountOptions'])) { $storageConfig->setMountOptions($storageOptions['mountOptions']); } if (isset($storageOptions['priority'])) { $storageConfig->setPriority($storageOptions['priority']); } if ($mountType === \OC_Mount_Config::MOUNT_TYPE_USER) { $applicableUsers = $storageConfig->getApplicableUsers(); if ($applicable !== 'all') { $applicableUsers[] = $applicable; $storageConfig->setApplicableUsers($applicableUsers); } } else { if ($mountType === \OC_Mount_Config::MOUNT_TYPE_GROUP) { $applicableGroups = $storageConfig->getApplicableGroups(); $applicableGroups[] = $applicable; $storageConfig->setApplicableGroups($applicableGroups); } } return $storageConfig; }
public function testDeleteStorage() { $storage = new StorageConfig(255); $storage->setMountPoint('mountpoint'); $storage->setBackendClass('\\OC\\Files\\Storage\\SMB'); $storage->setBackendOptions(['password' => 'testPassword']); $newStorage = $this->service->addStorage($storage); $this->assertEquals(1, $newStorage->getId()); $newStorage = $this->service->removeStorage(1); $caught = false; try { $this->service->getStorage(1); } catch (NotFoundException $e) { $caught = true; } $this->assertTrue($caught); }
public function testJsonSerialization() { $storageConfig = new StorageConfig(1); $storageConfig->setMountPoint('test'); $storageConfig->setBackendClass('\\OC\\Files\\Storage\\SMB'); $storageConfig->setBackendOptions(['user' => 'test', 'password' => 'password123']); $storageConfig->setPriority(128); $storageConfig->setApplicableUsers(['user1', 'user2']); $storageConfig->setApplicableGroups(['group1', 'group2']); $storageConfig->setMountOptions(['preview' => false]); $json = $storageConfig->jsonSerialize(); $this->assertEquals(1, $json['id']); $this->assertEquals('/test', $json['mountPoint']); $this->assertEquals('\\OC\\Files\\Storage\\SMB', $json['backendClass']); $this->assertEquals('test', $json['backendOptions']['user']); $this->assertEquals('password123', $json['backendOptions']['password']); $this->assertEquals(128, $json['priority']); $this->assertEquals(['user1', 'user2'], $json['applicableUsers']); $this->assertEquals(['group1', 'group2'], $json['applicableGroups']); $this->assertEquals(['preview' => false], $json['mountOptions']); }
/** * Update an external storage entry. * * @param int $id storage id * @param string $mountPoint storage mount point * @param string $backendClass backend class name * @param array $backendOptions backend-specific options * @param array $mountOptions mount-specific options * @param array $applicableUsers users for which to mount the storage * @param array $applicableGroups groups for which to mount the storage * @param int $priority priority * * @return DataResponse */ public function update($id, $mountPoint, $backendClass, $backendOptions, $mountOptions, $applicableUsers, $applicableGroups, $priority) { $storage = new StorageConfig($id); $storage->setMountPoint($mountPoint); $storage->setBackendClass($backendClass); $storage->setBackendOptions($backendOptions); $storage->setMountOptions($mountOptions); $storage->setApplicableUsers($applicableUsers); $storage->setApplicableGroups($applicableGroups); $storage->setPriority($priority); $response = $this->validate($storage); if (!empty($response)) { return $response; } try { $storage = $this->service->updateStorage($storage); } catch (NotFoundException $e) { return new DataResponse(['message' => (string) $this->l10n->t('Storage with id "%i" not found', array($id))], Http::STATUS_NOT_FOUND); } $this->updateStorageStatus($storage); return new DataResponse($storage, Http::STATUS_OK); }
public function testGetStorage() { $storageConfig = new StorageConfig(1); $storageConfig->setMountPoint('test'); $storageConfig->setBackendClass('\\OC\\Files\\Storage\\SMB'); $storageConfig->setBackendOptions(['user' => 'test', 'password', 'password123']); $storageConfig->setMountOptions(['priority' => false]); $this->service->expects($this->once())->method('getStorage')->with(1)->will($this->returnValue($storageConfig)); $response = $this->controller->show(1); $this->assertEquals(Http::STATUS_OK, $response->getStatus()); $this->assertEquals($storageConfig, $response->getData()); }