|
7 | 7 | */ |
8 | 8 | use OC\Files\Filesystem; |
9 | 9 | use OC\Files\Storage\Wrapper\DirPermissionsMask; |
| 10 | +use OC\Files\Storage\Wrapper\PermissionsMask; |
10 | 11 | use OC\Files\View; |
11 | 12 | use OCA\DAV\Connector\LegacyPublicAuth; |
12 | 13 | use OCA\DAV\Connector\Sabre\BearerAuth; |
|
19 | 20 | use OCP\BeforeSabrePubliclyLoadedEvent; |
20 | 21 | use OCP\Constants; |
21 | 22 | use OCP\EventDispatcher\IEventDispatcher; |
| 23 | +use OCP\Files\IHomeStorage; |
22 | 24 | use OCP\Files\IRootFolder; |
23 | 25 | use OCP\Files\Mount\IMountManager; |
24 | 26 | use OCP\Files\Storage\IStorage; |
@@ -112,11 +114,17 @@ function (\Sabre\DAV\Server $server) use ( |
112 | 114 | // FIXME: should not add storage wrappers outside of preSetup, need to find a better way |
113 | 115 | $previousLog = Filesystem::logWarningWhenAddingStorageWrapper(false); |
114 | 116 | 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 | | - ]); |
| 117 | + $mask = $share->getPermissions() | Constants::PERMISSION_SHARE; |
| 118 | + |
| 119 | + if ($storage instanceof IHomeStorage) { |
| 120 | + return new DirPermissionsMask([ |
| 121 | + 'storage' => $storage, |
| 122 | + 'mask' => $mask, |
| 123 | + 'path' => 'files', |
| 124 | + ]); |
| 125 | + } else { |
| 126 | + return new PermissionsMask(['storage' => $storage, 'mask' => $mask]); |
| 127 | + } |
120 | 128 | }); |
121 | 129 | Filesystem::addStorageWrapper('shareOwner', function (string $mountPoint, IStorage $storage) use ($share) { |
122 | 130 | return new PublicOwnerWrapper(['storage' => $storage, 'owner' => $share->getShareOwner()]); |
|
0 commit comments