summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoeland Jago Douma <rullzer@users.noreply.github.com>2020-04-30 20:34:52 +0200
committerGitHub <noreply@github.com>2020-04-30 20:34:52 +0200
commit1a04033b1963df814ea08d83e4b9b51969c76b7f (patch)
tree8588a96af7dcd621713fadda932266da19a886be
parentae665e217582cb99d014e8dd21d1f9e1a3fcd84d (diff)
parent4e6d3d18805ba7713a65c461b627f8474d82f4f5 (diff)
downloadnextcloud-server-1a04033b1963df814ea08d83e4b9b51969c76b7f.tar.gz
nextcloud-server-1a04033b1963df814ea08d83e4b9b51969c76b7f.zip
Merge pull request #20725 from nextcloud/getDirectoryContent-fix-jail
Fix getDirectoryContent implementation for Jail wrapper
-rw-r--r--lib/private/Files/ObjectStore/SwiftFactory.php4
-rw-r--r--lib/private/Files/Storage/Wrapper/Jail.php2
-rw-r--r--tests/lib/Files/Storage/Storage.php15
3 files changed, 18 insertions, 3 deletions
diff --git a/lib/private/Files/ObjectStore/SwiftFactory.php b/lib/private/Files/ObjectStore/SwiftFactory.php
index 9857e1def85..0354fba638f 100644
--- a/lib/private/Files/ObjectStore/SwiftFactory.php
+++ b/lib/private/Files/ObjectStore/SwiftFactory.php
@@ -78,12 +78,12 @@ class SwiftFactory {
* @throws StorageAuthException
*/
public function getCachedTokenId() {
- if ( !isset($this->params['cachedToken']) ) {
+ if (!isset($this->params['cachedToken'])) {
throw new StorageAuthException('Unauthenticated ObjectStore connection');
}
// Is it V2 token?
- if ( isset($this->params['cachedToken']['token']) ) {
+ if (isset($this->params['cachedToken']['token'])) {
return $this->params['cachedToken']['token']['id'];
}
diff --git a/lib/private/Files/Storage/Wrapper/Jail.php b/lib/private/Files/Storage/Wrapper/Jail.php
index 929a4942562..7350c104ba8 100644
--- a/lib/private/Files/Storage/Wrapper/Jail.php
+++ b/lib/private/Files/Storage/Wrapper/Jail.php
@@ -541,6 +541,6 @@ class Jail extends Wrapper {
}
public function getDirectoryContent($directory): \Traversable {
- return $this->getWrapperStorage()->getDirectoryContent($this->getJailedPath($directory));
+ return $this->getWrapperStorage()->getDirectoryContent($this->getUnjailedPath($directory));
}
}
diff --git a/tests/lib/Files/Storage/Storage.php b/tests/lib/Files/Storage/Storage.php
index c37a8152989..ecc2bb50538 100644
--- a/tests/lib/Files/Storage/Storage.php
+++ b/tests/lib/Files/Storage/Storage.php
@@ -88,6 +88,21 @@ abstract class Storage extends \Test\TestCase {
}
$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->assertTrue($this->instance->rmdir('/' . $directory));