diff --git a/apps/dav/appinfo/v2/publicremote.php b/apps/dav/appinfo/v2/publicremote.php index 03b8fb21f8519..865c8d311cac7 100644 --- a/apps/dav/appinfo/v2/publicremote.php +++ b/apps/dav/appinfo/v2/publicremote.php @@ -7,6 +7,7 @@ */ use OC\Files\Filesystem; use OC\Files\Storage\Wrapper\DirPermissionsMask; +use OC\Files\Storage\Wrapper\PermissionsMask; use OC\Files\View; use OCA\DAV\Connector\Sabre\PublicAuth; use OCA\DAV\Connector\Sabre\ServerFactory; @@ -21,6 +22,7 @@ use OCP\BeforeSabrePubliclyLoadedEvent; use OCP\Constants; use OCP\EventDispatcher\IEventDispatcher; +use OCP\Files\IHomeStorage; use OCP\Files\IRootFolder; use OCP\Files\Mount\IMountManager; use OCP\ICacheFactory; @@ -116,11 +118,15 @@ $mask |= Constants::PERMISSION_READ | Constants::PERMISSION_DELETE; } - return new DirPermissionsMask([ - 'storage' => $storage, - 'mask' => $mask, - 'path' => 'files', - ]); + if ($storage instanceof IHomeStorage) { + return new DirPermissionsMask([ + 'storage' => $storage, + 'mask' => $mask, + 'path' => 'files', + ]); + } else { + return new PermissionsMask(['storage' => $storage, 'mask' => $mask]); + } }); /** @psalm-suppress MissingClosureParamType */ diff --git a/lib/private/Files/Storage/Wrapper/DirPermissionsMask.php b/lib/private/Files/Storage/Wrapper/DirPermissionsMask.php index 6ab777f309f2f..e1066e8d04f20 100644 --- a/lib/private/Files/Storage/Wrapper/DirPermissionsMask.php +++ b/lib/private/Files/Storage/Wrapper/DirPermissionsMask.php @@ -10,8 +10,8 @@ namespace OC\Files\Storage\Wrapper; use OC\Files\Cache\Wrapper\CacheDirPermissionsMask; -use OC\Files\Storage\Storage; use OCP\Files\Cache\ICache; +use OCP\Files\Storage\IStorage; /** * While PermissionMask can mask a whole storage this can @@ -30,7 +30,7 @@ class DirPermissionsMask extends PermissionsMask { private readonly int $pathLength; /** - * @param array{storage: Storage, mask: int, path: string, ...} $parameters + * @param array{storage: IStorage, mask: int, path: string, ...} $parameters * @psalm-suppress MoreSpecificImplementedParamType * * $storage: The storage the permissions mask should be applied on