Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Schwan <carl@carlschwan.eu>2022-09-07 14:51:38 +0300
committerCarl Schwan <carl@carlschwan.eu>2022-09-08 15:51:28 +0300
commit7ded5a769b7d7d681c3a3260b77869b18c9822ae (patch)
tree68944d9f119e90b6ebbad2405d209770a9798c7a
parentf496e471e06d546179e3f12af1e6cc9319db9bb3 (diff)
Only normalize data in public shares and not crudfix/public-sharing
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
-rw-r--r--apps/files_sharing/lib/Controller/ShareAPIController.php4
-rw-r--r--apps/files_sharing/tests/Controller/ShareAPIControllerTest.php6
-rw-r--r--build/integration/sharing_features/sharing-v1.feature1
3 files changed, 7 insertions, 4 deletions
diff --git a/apps/files_sharing/lib/Controller/ShareAPIController.php b/apps/files_sharing/lib/Controller/ShareAPIController.php
index 59089390667..4afa8899ed0 100644
--- a/apps/files_sharing/lib/Controller/ShareAPIController.php
+++ b/apps/files_sharing/lib/Controller/ShareAPIController.php
@@ -1187,7 +1187,9 @@ class ShareAPIController extends OCSController {
}
// normalize to correct public upload permissions
- $newPermissions = Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE;
+ if ($publicUpload === 'true') {
+ $newPermissions = Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE;
+ }
}
if ($newPermissions !== null) {
diff --git a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
index f8f4fb18bc8..4ac4cd6956e 100644
--- a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
@@ -3037,7 +3037,7 @@ class ShareAPIControllerTest extends TestCase {
// legacy had no delete
[
\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE,
- null, null, 'password'
+ 'true', null, 'password'
],
// correct
[
@@ -3538,7 +3538,7 @@ class ShareAPIControllerTest extends TestCase {
$this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true);
$this->shareManager->expects($this->once())->method('updateShare')->with(
- $this->callback(function (\OCP\Share\IShare $share) use ($date) {
+ $this->callback(function (\OCP\Share\IShare $share) use ($date): bool {
return $share->getPermissions() === (\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE) &&
$share->getPassword() === 'password' &&
$share->getSendPasswordByTalk() === true &&
@@ -3567,7 +3567,7 @@ class ShareAPIControllerTest extends TestCase {
->willReturn(42);
$expected = new DataResponse([]);
- $result = $ocs->updateShare(42, 7, null, null, null, null, null, null, null);
+ $result = $ocs->updateShare(42, 7, null, null, 'true', null, null, null, null);
$this->assertInstanceOf(get_class($expected), $result);
$this->assertEquals($expected->getData(), $result->getData());
diff --git a/build/integration/sharing_features/sharing-v1.feature b/build/integration/sharing_features/sharing-v1.feature
index fbcbb50b7de..ca030bd3a31 100644
--- a/build/integration/sharing_features/sharing-v1.feature
+++ b/build/integration/sharing_features/sharing-v1.feature
@@ -269,6 +269,7 @@ Feature: sharing
| shareType | 3 |
And Updating last share with
| permissions | 7 |
+ | publicUpload | true |
And the OCS status code should be "100"
And the HTTP status code should be "200"
And Getting info of last share