Propegate hide download state in share provider
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This commit is contained in:
parent
bc960bae02
commit
abbb946bbb
|
@ -252,6 +252,7 @@ class ShareAPIController extends OCSController {
|
||||||
|
|
||||||
|
|
||||||
$result['mail_send'] = $share->getMailSend() ? 1 : 0;
|
$result['mail_send'] = $share->getMailSend() ? 1 : 0;
|
||||||
|
$result['hide_download'] = $share->getHideDownload() ? 1 : 0;
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
@ -745,6 +746,7 @@ class ShareAPIController extends OCSController {
|
||||||
* @param string $publicUpload
|
* @param string $publicUpload
|
||||||
* @param string $expireDate
|
* @param string $expireDate
|
||||||
* @param string $note
|
* @param string $note
|
||||||
|
* @param string $hideDownload
|
||||||
* @return DataResponse
|
* @return DataResponse
|
||||||
* @throws LockedException
|
* @throws LockedException
|
||||||
* @throws NotFoundException
|
* @throws NotFoundException
|
||||||
|
@ -759,7 +761,8 @@ class ShareAPIController extends OCSController {
|
||||||
string $sendPasswordByTalk = null,
|
string $sendPasswordByTalk = null,
|
||||||
string $publicUpload = null,
|
string $publicUpload = null,
|
||||||
string $expireDate = null,
|
string $expireDate = null,
|
||||||
string $note = null
|
string $note = null,
|
||||||
|
string $hideDownload = null
|
||||||
): DataResponse {
|
): DataResponse {
|
||||||
try {
|
try {
|
||||||
$share = $this->getShareById($id);
|
$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'));
|
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'));
|
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) {
|
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;
|
$newPermissions = null;
|
||||||
if ($publicUpload === 'true') {
|
if ($publicUpload === 'true') {
|
||||||
$newPermissions = Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE;
|
$newPermissions = Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE;
|
||||||
|
|
|
@ -353,6 +353,7 @@ class ShareAPIControllerTest extends TestCase {
|
||||||
'note' => 'personal note',
|
'note' => 'personal note',
|
||||||
'displayname_file_owner' => 'ownerDisplay',
|
'displayname_file_owner' => 'ownerDisplay',
|
||||||
'mimetype' => 'myMimeType',
|
'mimetype' => 'myMimeType',
|
||||||
|
'hide_download' => 0,
|
||||||
];
|
];
|
||||||
$data[] = [$share, $expected];
|
$data[] = [$share, $expected];
|
||||||
|
|
||||||
|
@ -397,6 +398,7 @@ class ShareAPIControllerTest extends TestCase {
|
||||||
'note' => 'personal note',
|
'note' => 'personal note',
|
||||||
'displayname_file_owner' => 'ownerDisplay',
|
'displayname_file_owner' => 'ownerDisplay',
|
||||||
'mimetype' => 'myFolderMimeType',
|
'mimetype' => 'myFolderMimeType',
|
||||||
|
'hide_download' => 0,
|
||||||
];
|
];
|
||||||
$data[] = [$share, $expected];
|
$data[] = [$share, $expected];
|
||||||
|
|
||||||
|
@ -445,6 +447,7 @@ class ShareAPIControllerTest extends TestCase {
|
||||||
'note' => 'personal note',
|
'note' => 'personal note',
|
||||||
'displayname_file_owner' => 'ownerDisplay',
|
'displayname_file_owner' => 'ownerDisplay',
|
||||||
'mimetype' => 'myFolderMimeType',
|
'mimetype' => 'myFolderMimeType',
|
||||||
|
'hide_download' => 0,
|
||||||
];
|
];
|
||||||
$data[] = [$share, $expected];
|
$data[] = [$share, $expected];
|
||||||
|
|
||||||
|
@ -2175,6 +2178,7 @@ class ShareAPIControllerTest extends TestCase {
|
||||||
'note' => 'personal note',
|
'note' => 'personal note',
|
||||||
'mail_send' => 0,
|
'mail_send' => 0,
|
||||||
'mimetype' => 'myMimeType',
|
'mimetype' => 'myMimeType',
|
||||||
|
'hide_download' => 0,
|
||||||
], $share, [], false
|
], $share, [], false
|
||||||
];
|
];
|
||||||
// User backend up
|
// User backend up
|
||||||
|
@ -2204,6 +2208,7 @@ class ShareAPIControllerTest extends TestCase {
|
||||||
'share_with_displayname' => 'recipientDN',
|
'share_with_displayname' => 'recipientDN',
|
||||||
'mail_send' => 0,
|
'mail_send' => 0,
|
||||||
'mimetype' => 'myMimeType',
|
'mimetype' => 'myMimeType',
|
||||||
|
'hide_download' => 0,
|
||||||
], $share, [
|
], $share, [
|
||||||
['owner', $owner],
|
['owner', $owner],
|
||||||
['initiator', $initiator],
|
['initiator', $initiator],
|
||||||
|
@ -2249,6 +2254,7 @@ class ShareAPIControllerTest extends TestCase {
|
||||||
'share_with_displayname' => 'recipient',
|
'share_with_displayname' => 'recipient',
|
||||||
'mail_send' => 0,
|
'mail_send' => 0,
|
||||||
'mimetype' => 'myMimeType',
|
'mimetype' => 'myMimeType',
|
||||||
|
'hide_download' => 0,
|
||||||
], $share, [], false
|
], $share, [], false
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -2292,6 +2298,7 @@ class ShareAPIControllerTest extends TestCase {
|
||||||
'share_with_displayname' => 'recipientGroupDisplayName',
|
'share_with_displayname' => 'recipientGroupDisplayName',
|
||||||
'mail_send' => 0,
|
'mail_send' => 0,
|
||||||
'mimetype' => 'myMimeType',
|
'mimetype' => 'myMimeType',
|
||||||
|
'hide_download' => 0,
|
||||||
], $share, [], false
|
], $share, [], false
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -2333,6 +2340,7 @@ class ShareAPIControllerTest extends TestCase {
|
||||||
'share_with_displayname' => 'recipientGroup2',
|
'share_with_displayname' => 'recipientGroup2',
|
||||||
'mail_send' => 0,
|
'mail_send' => 0,
|
||||||
'mimetype' => 'myMimeType',
|
'mimetype' => 'myMimeType',
|
||||||
|
'hide_download' => 0,
|
||||||
], $share, [], false
|
], $share, [], false
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -2377,6 +2385,7 @@ class ShareAPIControllerTest extends TestCase {
|
||||||
'mail_send' => 0,
|
'mail_send' => 0,
|
||||||
'url' => 'myLink',
|
'url' => 'myLink',
|
||||||
'mimetype' => 'myMimeType',
|
'mimetype' => 'myMimeType',
|
||||||
|
'hide_download' => 0,
|
||||||
], $share, [], false
|
], $share, [], false
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -2418,6 +2427,7 @@ class ShareAPIControllerTest extends TestCase {
|
||||||
'share_with_displayname' => 'foobar',
|
'share_with_displayname' => 'foobar',
|
||||||
'mail_send' => 0,
|
'mail_send' => 0,
|
||||||
'mimetype' => 'myFolderMimeType',
|
'mimetype' => 'myFolderMimeType',
|
||||||
|
'hide_download' => 0,
|
||||||
], $share, [], false
|
], $share, [], false
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -2462,6 +2472,7 @@ class ShareAPIControllerTest extends TestCase {
|
||||||
'share_with_avatar' => 'path/to/the/avatar',
|
'share_with_avatar' => 'path/to/the/avatar',
|
||||||
'mail_send' => 0,
|
'mail_send' => 0,
|
||||||
'mimetype' => 'myFolderMimeType',
|
'mimetype' => 'myFolderMimeType',
|
||||||
|
'hide_download' => 0,
|
||||||
], $share, [], false
|
], $share, [], false
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -2504,6 +2515,7 @@ class ShareAPIControllerTest extends TestCase {
|
||||||
'share_with_avatar' => '',
|
'share_with_avatar' => '',
|
||||||
'mail_send' => 0,
|
'mail_send' => 0,
|
||||||
'mimetype' => 'myFolderMimeType',
|
'mimetype' => 'myFolderMimeType',
|
||||||
|
'hide_download' => 0,
|
||||||
], $share, [], false
|
], $share, [], false
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -2546,6 +2558,7 @@ class ShareAPIControllerTest extends TestCase {
|
||||||
'share_with_avatar' => '',
|
'share_with_avatar' => '',
|
||||||
'mail_send' => 0,
|
'mail_send' => 0,
|
||||||
'mimetype' => 'myFolderMimeType',
|
'mimetype' => 'myFolderMimeType',
|
||||||
|
'hide_download' => 0,
|
||||||
], $share, [], false
|
], $share, [], false
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -2603,7 +2616,8 @@ class ShareAPIControllerTest extends TestCase {
|
||||||
'mail_send' => 0,
|
'mail_send' => 0,
|
||||||
'mimetype' => 'myFolderMimeType',
|
'mimetype' => 'myFolderMimeType',
|
||||||
'password' => 'password',
|
'password' => 'password',
|
||||||
'send_password_by_talk' => false
|
'send_password_by_talk' => false,
|
||||||
|
'hide_download' => 0,
|
||||||
], $share, [], false
|
], $share, [], false
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -2647,7 +2661,8 @@ class ShareAPIControllerTest extends TestCase {
|
||||||
'mail_send' => 0,
|
'mail_send' => 0,
|
||||||
'mimetype' => 'myFolderMimeType',
|
'mimetype' => 'myFolderMimeType',
|
||||||
'password' => 'password',
|
'password' => 'password',
|
||||||
'send_password_by_talk' => true
|
'send_password_by_talk' => true,
|
||||||
|
'hide_download' => 0,
|
||||||
], $share, [], false
|
], $share, [], false
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -2787,6 +2802,7 @@ class ShareAPIControllerTest extends TestCase {
|
||||||
'share_with_displayname' => '',
|
'share_with_displayname' => '',
|
||||||
'mail_send' => 0,
|
'mail_send' => 0,
|
||||||
'mimetype' => 'myMimeType',
|
'mimetype' => 'myMimeType',
|
||||||
|
'hide_download' => 0,
|
||||||
], $share, false, []
|
], $share, false, []
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -2828,6 +2844,7 @@ class ShareAPIControllerTest extends TestCase {
|
||||||
'share_with_displayname' => 'recipientRoomName',
|
'share_with_displayname' => 'recipientRoomName',
|
||||||
'mail_send' => 0,
|
'mail_send' => 0,
|
||||||
'mimetype' => 'myMimeType',
|
'mimetype' => 'myMimeType',
|
||||||
|
'hide_download' => 0,
|
||||||
], $share, true, [
|
], $share, true, [
|
||||||
'share_with_displayname' => 'recipientRoomName'
|
'share_with_displayname' => 'recipientRoomName'
|
||||||
]
|
]
|
||||||
|
|
|
@ -296,6 +296,7 @@ class DefaultShareProvider implements IShareProvider {
|
||||||
->set('token', $qb->createNamedParameter($share->getToken()))
|
->set('token', $qb->createNamedParameter($share->getToken()))
|
||||||
->set('expiration', $qb->createNamedParameter($share->getExpirationDate(), IQueryBuilder::PARAM_DATE))
|
->set('expiration', $qb->createNamedParameter($share->getExpirationDate(), IQueryBuilder::PARAM_DATE))
|
||||||
->set('note', $qb->createNamedParameter($share->getNote()))
|
->set('note', $qb->createNamedParameter($share->getNote()))
|
||||||
|
->set('hide_download', $qb->createNamedParameter($share->getHideDownload() ? 1 : 0), IQueryBuilder::PARAM_INT)
|
||||||
->execute();
|
->execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -953,6 +954,7 @@ class DefaultShareProvider implements IShareProvider {
|
||||||
}
|
}
|
||||||
|
|
||||||
$share->setProviderId($this->identifier());
|
$share->setProviderId($this->identifier());
|
||||||
|
$share->setHideDownload((int)$data['hide_download'] === 1);
|
||||||
|
|
||||||
return $share;
|
return $share;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue