Skip to content

Commit ca276a9

Browse files
authored
Merge pull request #20846 from nextcloud/fix/link_fed_perm
Link permissions
2 parents 1bba7de + 8289565 commit ca276a9

File tree

3 files changed

+14
-12
lines changed

3 files changed

+14
-12
lines changed

apps/files_sharing/lib/Controller/ShareAPIController.php

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -216,15 +216,6 @@ protected function formatShare(IShare $share, Node $recipientNode = null): array
216216
$result['expiration'] = $expiration->format('Y-m-d 00:00:00');
217217
}
218218

219-
// TODO: It might make sense to have a dedicated setting to allow/deny converting link shares into federated ones
220-
// For link shares, we need to have the PERMISSION_SHARE if federated is enabled
221-
if ($this->shareManager->outgoingServer2ServerSharesAllowed()) {
222-
if ($share->getShareType() === IShare::TYPE_LINK
223-
|| $share->getShareType() === IShare::TYPE_EMAIL) {
224-
$result['permissions'] |= Constants::PERMISSION_SHARE;
225-
}
226-
}
227-
228219
if ($share->getShareType() === IShare::TYPE_USER) {
229220
$sharedWith = $this->userManager->get($share->getSharedWith());
230221
$result['share_with'] = $share->getSharedWith();
@@ -511,6 +502,11 @@ public function createShare(
511502
$permissions = Constants::PERMISSION_READ;
512503
}
513504

505+
// TODO: It might make sense to have a dedicated setting to allow/deny converting link shares into federated ones
506+
if (($permissions & Constants::PERMISSION_READ) && $this->shareManager->outgoingServer2ServerSharesAllowed()) {
507+
$permissions |= Constants::PERMISSION_SHARE;
508+
}
509+
514510
$share->setPermissions($permissions);
515511

516512
// Set password
@@ -1055,6 +1051,11 @@ public function updateShare(
10551051
}
10561052

10571053
if ($newPermissions !== null) {
1054+
// TODO: It might make sense to have a dedicated setting to allow/deny converting link shares into federated ones
1055+
if (($newPermissions & Constants::PERMISSION_READ) && $this->shareManager->outgoingServer2ServerSharesAllowed()) {
1056+
$newPermissions |= Constants::PERMISSION_SHARE;
1057+
}
1058+
10581059
$share->setPermissions($newPermissions);
10591060
$permissions = $newPermissions;
10601061
}

apps/files_sharing/tests/ApiTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -999,7 +999,8 @@ public function testUpdateShareUpload() {
999999
\OCP\Constants::PERMISSION_READ |
10001000
\OCP\Constants::PERMISSION_CREATE |
10011001
\OCP\Constants::PERMISSION_UPDATE |
1002-
\OCP\Constants::PERMISSION_DELETE,
1002+
\OCP\Constants::PERMISSION_DELETE |
1003+
\OCP\Constants::PERMISSION_SHARE,
10031004
$share1->getPermissions()
10041005
);
10051006

build/integration/sharing_features/sharing-v1.feature

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ Feature: sharing
195195
| share_type | 3 |
196196
| file_source | A_NUMBER |
197197
| file_target | /FOLDER |
198-
| permissions | 15 |
198+
| permissions | 31 |
199199
| stime | A_NUMBER |
200200
| token | A_TOKEN |
201201
| storage | A_NUMBER |
@@ -259,7 +259,7 @@ Feature: sharing
259259
| share_type | 3 |
260260
| file_source | A_NUMBER |
261261
| file_target | /FOLDER |
262-
| permissions | 15 |
262+
| permissions | 31 |
263263
| stime | A_NUMBER |
264264
| token | A_TOKEN |
265265
| storage | A_NUMBER |

0 commit comments

Comments
 (0)