@@ -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 }
0 commit comments