Skip to content

Commit fd60c27

Browse files
committed
fix(dav): correctly mask public v1 links for non-home storages
Signed-off-by: Kent Delante <kent@delante.me>
1 parent ea88d00 commit fd60c27

1 file changed

Lines changed: 12 additions & 5 deletions

File tree

apps/dav/appinfo/v1/publicwebdav.php

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
*/
88
use OC\Files\Filesystem;
99
use OC\Files\Storage\Wrapper\DirPermissionsMask;
10+
use OC\Files\Storage\Wrapper\PermissionsMask;
1011
use OC\Files\View;
1112
use OCA\DAV\Connector\LegacyPublicAuth;
1213
use OCA\DAV\Connector\Sabre\BearerAuth;
@@ -112,11 +113,17 @@ function (\Sabre\DAV\Server $server) use (
112113
// FIXME: should not add storage wrappers outside of preSetup, need to find a better way
113114
$previousLog = Filesystem::logWarningWhenAddingStorageWrapper(false);
114115
Filesystem::addStorageWrapper('sharePermissions', function (string $mountPoint, IStorage $storage) use ($share) {
115-
return new DirPermissionsMask([
116-
'storage' => $storage,
117-
'mask' => $share->getPermissions() | Constants::PERMISSION_SHARE,
118-
'path' => 'files'
119-
]);
116+
$mask = $share->getPermissions() | Constants::PERMISSION_SHARE;
117+
118+
if ($storage instanceof IHomeStorage) {
119+
return new DirPermissionsMask([
120+
'storage' => $storage,
121+
'mask' => $mask,
122+
'path' => 'files',
123+
]);
124+
} else {
125+
return new PermissionsMask(['storage' => $storage, 'mask' => $mask]);
126+
}
120127
});
121128
Filesystem::addStorageWrapper('shareOwner', function (string $mountPoint, IStorage $storage) use ($share) {
122129
return new PublicOwnerWrapper(['storage' => $storage, 'owner' => $share->getShareOwner()]);

0 commit comments

Comments
 (0)