summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorRoeland Jago Douma <roeland@famdouma.nl>2018-10-18 12:38:07 +0200
committerDaniel Calviño Sánchez <danxuliu@gmail.com>2018-10-30 15:18:55 +0100
commitabbb946bbbdfedc127b1135d8a54f391e3f2d375 (patch)
tree13347dde4e8dc70d389e8768649b841c4b6cb468 /apps
parentbc960bae028650d6bfeed4591bf49c8641dd149d (diff)
downloadnextcloud-server-abbb946bbbdfedc127b1135d8a54f391e3f2d375.tar.gz
nextcloud-server-abbb946bbbdfedc127b1135d8a54f391e3f2d375.zip
Propegate hide download state in share provider
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Diffstat (limited to 'apps')
-rw-r--r--apps/files_sharing/lib/Controller/ShareAPIController.php14
-rw-r--r--apps/files_sharing/tests/Controller/ShareAPIControllerTest.php21
2 files changed, 31 insertions, 4 deletions
diff --git a/apps/files_sharing/lib/Controller/ShareAPIController.php b/apps/files_sharing/lib/Controller/ShareAPIController.php
index ff19c35e2b5..a935189491e 100644
--- a/apps/files_sharing/lib/Controller/ShareAPIController.php
+++ b/apps/files_sharing/lib/Controller/ShareAPIController.php
@@ -252,6 +252,7 @@ class ShareAPIController extends OCSController {
$result['mail_send'] = $share->getMailSend() ? 1 : 0;
+ $result['hide_download'] = $share->getHideDownload() ? 1 : 0;
return $result;
}
@@ -745,6 +746,7 @@ class ShareAPIController extends OCSController {
* @param string $publicUpload
* @param string $expireDate
* @param string $note
+ * @param string $hideDownload
* @return DataResponse
* @throws LockedException
* @throws NotFoundException
@@ -759,7 +761,8 @@ class ShareAPIController extends OCSController {
string $sendPasswordByTalk = null,
string $publicUpload = null,
string $expireDate = null,
- string $note = null
+ string $note = null,
+ string $hideDownload = null
): DataResponse {
try {
$share = $this->getShareById($id);
@@ -773,7 +776,7 @@ class ShareAPIController extends OCSController {
throw new OCSNotFoundException($this->l->t('Wrong share ID, share doesn\'t exist'));
}
- if ($permissions === null && $password === null && $sendPasswordByTalk === null && $publicUpload === null && $expireDate === null && $note === null) {
+ if ($permissions === null && $password === null && $sendPasswordByTalk === null && $publicUpload === null && $expireDate === null && $note === null && $hideDownload === null) {
throw new OCSBadRequestException($this->l->t('Wrong or no update parameter given'));
}
@@ -786,6 +789,13 @@ class ShareAPIController extends OCSController {
*/
if ($share->getShareType() === Share::SHARE_TYPE_LINK) {
+ // Update hide download state
+ if ($hideDownload === 'true') {
+ $share->setHideDownload(true);
+ } else if ($hideDownload === 'false') {
+ $share->setHideDownload(false);
+ }
+
$newPermissions = null;
if ($publicUpload === 'true') {
$newPermissions = Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE;
diff --git a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
index 15c4071bc46..bd263de3f62 100644
--- a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
@@ -353,6 +353,7 @@ class ShareAPIControllerTest extends TestCase {
'note' => 'personal note',
'displayname_file_owner' => 'ownerDisplay',
'mimetype' => 'myMimeType',
+ 'hide_download' => 0,
];
$data[] = [$share, $expected];
@@ -397,6 +398,7 @@ class ShareAPIControllerTest extends TestCase {
'note' => 'personal note',
'displayname_file_owner' => 'ownerDisplay',
'mimetype' => 'myFolderMimeType',
+ 'hide_download' => 0,
];
$data[] = [$share, $expected];
@@ -445,6 +447,7 @@ class ShareAPIControllerTest extends TestCase {
'note' => 'personal note',
'displayname_file_owner' => 'ownerDisplay',
'mimetype' => 'myFolderMimeType',
+ 'hide_download' => 0,
];
$data[] = [$share, $expected];
@@ -2175,6 +2178,7 @@ class ShareAPIControllerTest extends TestCase {
'note' => 'personal note',
'mail_send' => 0,
'mimetype' => 'myMimeType',
+ 'hide_download' => 0,
], $share, [], false
];
// User backend up
@@ -2204,6 +2208,7 @@ class ShareAPIControllerTest extends TestCase {
'share_with_displayname' => 'recipientDN',
'mail_send' => 0,
'mimetype' => 'myMimeType',
+ 'hide_download' => 0,
], $share, [
['owner', $owner],
['initiator', $initiator],
@@ -2249,6 +2254,7 @@ class ShareAPIControllerTest extends TestCase {
'share_with_displayname' => 'recipient',
'mail_send' => 0,
'mimetype' => 'myMimeType',
+ 'hide_download' => 0,
], $share, [], false
];
@@ -2292,6 +2298,7 @@ class ShareAPIControllerTest extends TestCase {
'share_with_displayname' => 'recipientGroupDisplayName',
'mail_send' => 0,
'mimetype' => 'myMimeType',
+ 'hide_download' => 0,
], $share, [], false
];
@@ -2333,6 +2340,7 @@ class ShareAPIControllerTest extends TestCase {
'share_with_displayname' => 'recipientGroup2',
'mail_send' => 0,
'mimetype' => 'myMimeType',
+ 'hide_download' => 0,
], $share, [], false
];
@@ -2377,6 +2385,7 @@ class ShareAPIControllerTest extends TestCase {
'mail_send' => 0,
'url' => 'myLink',
'mimetype' => 'myMimeType',
+ 'hide_download' => 0,
], $share, [], false
];
@@ -2418,6 +2427,7 @@ class ShareAPIControllerTest extends TestCase {
'share_with_displayname' => 'foobar',
'mail_send' => 0,
'mimetype' => 'myFolderMimeType',
+ 'hide_download' => 0,
], $share, [], false
];
@@ -2462,6 +2472,7 @@ class ShareAPIControllerTest extends TestCase {
'share_with_avatar' => 'path/to/the/avatar',
'mail_send' => 0,
'mimetype' => 'myFolderMimeType',
+ 'hide_download' => 0,
], $share, [], false
];
@@ -2504,6 +2515,7 @@ class ShareAPIControllerTest extends TestCase {
'share_with_avatar' => '',
'mail_send' => 0,
'mimetype' => 'myFolderMimeType',
+ 'hide_download' => 0,
], $share, [], false
];
@@ -2546,6 +2558,7 @@ class ShareAPIControllerTest extends TestCase {
'share_with_avatar' => '',
'mail_send' => 0,
'mimetype' => 'myFolderMimeType',
+ 'hide_download' => 0,
], $share, [], false
];
@@ -2603,7 +2616,8 @@ class ShareAPIControllerTest extends TestCase {
'mail_send' => 0,
'mimetype' => 'myFolderMimeType',
'password' => 'password',
- 'send_password_by_talk' => false
+ 'send_password_by_talk' => false,
+ 'hide_download' => 0,
], $share, [], false
];
@@ -2647,7 +2661,8 @@ class ShareAPIControllerTest extends TestCase {
'mail_send' => 0,
'mimetype' => 'myFolderMimeType',
'password' => 'password',
- 'send_password_by_talk' => true
+ 'send_password_by_talk' => true,
+ 'hide_download' => 0,
], $share, [], false
];
@@ -2787,6 +2802,7 @@ class ShareAPIControllerTest extends TestCase {
'share_with_displayname' => '',
'mail_send' => 0,
'mimetype' => 'myMimeType',
+ 'hide_download' => 0,
], $share, false, []
];
@@ -2828,6 +2844,7 @@ class ShareAPIControllerTest extends TestCase {
'share_with_displayname' => 'recipientRoomName',
'mail_send' => 0,
'mimetype' => 'myMimeType',
+ 'hide_download' => 0,
], $share, true, [
'share_with_displayname' => 'recipientRoomName'
]