Skip to content
Snippets Groups Projects
Unverified Commit 1a04033b authored by Roeland Jago Douma's avatar Roeland Jago Douma Committed by GitHub
Browse files

Merge pull request #20725 from nextcloud/getDirectoryContent-fix-jail

Fix getDirectoryContent implementation for Jail wrapper
parents ae665e21 4e6d3d18
No related branches found
No related tags found
No related merge requests found
...@@ -78,12 +78,12 @@ class SwiftFactory { ...@@ -78,12 +78,12 @@ class SwiftFactory {
* @throws StorageAuthException * @throws StorageAuthException
*/ */
public function getCachedTokenId() { public function getCachedTokenId() {
if ( !isset($this->params['cachedToken']) ) { if (!isset($this->params['cachedToken'])) {
throw new StorageAuthException('Unauthenticated ObjectStore connection'); throw new StorageAuthException('Unauthenticated ObjectStore connection');
} }
// Is it V2 token? // Is it V2 token?
if ( isset($this->params['cachedToken']['token']) ) { if (isset($this->params['cachedToken']['token'])) {
return $this->params['cachedToken']['token']['id']; return $this->params['cachedToken']['token']['id'];
} }
......
...@@ -541,6 +541,6 @@ class Jail extends Wrapper { ...@@ -541,6 +541,6 @@ class Jail extends Wrapper {
} }
public function getDirectoryContent($directory): \Traversable { public function getDirectoryContent($directory): \Traversable {
return $this->getWrapperStorage()->getDirectoryContent($this->getJailedPath($directory)); return $this->getWrapperStorage()->getDirectoryContent($this->getUnjailedPath($directory));
} }
} }
...@@ -88,6 +88,21 @@ abstract class Storage extends \Test\TestCase { ...@@ -88,6 +88,21 @@ abstract class Storage extends \Test\TestCase {
} }
$this->assertEquals([$directory], $content); $this->assertEquals([$directory], $content);
$content = iterator_to_array($this->instance->getDirectoryContent('/'));
$this->assertCount(1, $content);
$dirEntry = $content[0];
unset($dirEntry['scan_permissions']);
unset($dirEntry['etag']);
$this->assertEquals([
'name' => $directory,
'mimetype' => $this->instance->getMimeType($directory),
'mtime' => $this->instance->filemtime($directory),
'size' => -1,
'storage_mtime' => $this->instance->filemtime($directory),
'permissions' => $this->instance->getPermissions($directory),
], $dirEntry);
$this->assertFalse($this->instance->mkdir('/' . $directory)); //can't create existing folders $this->assertFalse($this->instance->mkdir('/' . $directory)); //can't create existing folders
$this->assertTrue($this->instance->rmdir('/' . $directory)); $this->assertTrue($this->instance->rmdir('/' . $directory));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment