diff options
author | Roeland Jago Douma <roeland@famdouma.nl> | 2021-03-04 13:49:21 +0100 |
---|---|---|
committer | Roeland Jago Douma <roeland@famdouma.nl> | 2021-03-04 13:49:21 +0100 |
commit | d247a5fb47a6416dbbd2744938aadfb0045abef8 (patch) | |
tree | 68645c7bc3226be2dfbc0376d846779e7d8c9c47 /apps/sharebymail | |
parent | 3bbacb2f541a513f47e0744ab8a629b936a091d8 (diff) | |
download | nextcloud-server-d247a5fb47a6416dbbd2744938aadfb0045abef8.tar.gz nextcloud-server-d247a5fb47a6416dbbd2744938aadfb0045abef8.zip |
Sharebymail: set expiration on creation
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Diffstat (limited to 'apps/sharebymail')
-rw-r--r-- | apps/sharebymail/lib/ShareByMailProvider.php | 10 | ||||
-rw-r--r-- | apps/sharebymail/tests/ShareByMailProviderTest.php | 5 |
2 files changed, 12 insertions, 3 deletions
diff --git a/apps/sharebymail/lib/ShareByMailProvider.php b/apps/sharebymail/lib/ShareByMailProvider.php index 6f2b5de437f..03e46c8e021 100644 --- a/apps/sharebymail/lib/ShareByMailProvider.php +++ b/apps/sharebymail/lib/ShareByMailProvider.php @@ -321,7 +321,8 @@ class ShareByMailProvider implements IShareProvider { $share->getToken(), $share->getPassword(), $share->getSendPasswordByTalk(), - $share->getHideDownload() + $share->getHideDownload(), + $share->getExpirationDate() ); try { @@ -658,9 +659,10 @@ class ShareByMailProvider implements IShareProvider { * @param string $password * @param bool $sendPasswordByTalk * @param bool $hideDownload + * @param \DateTime|null $expirationTime * @return int */ - protected function addShareToDB($itemSource, $itemType, $shareWith, $sharedBy, $uidOwner, $permissions, $token, $password, $sendPasswordByTalk, $hideDownload) { + protected function addShareToDB($itemSource, $itemType, $shareWith, $sharedBy, $uidOwner, $permissions, $token, $password, $sendPasswordByTalk, $hideDownload, $expirationTime) { $qb = $this->dbConnection->getQueryBuilder(); $qb->insert('share') ->setValue('share_type', $qb->createNamedParameter(IShare::TYPE_EMAIL)) @@ -677,6 +679,10 @@ class ShareByMailProvider implements IShareProvider { ->setValue('stime', $qb->createNamedParameter(time())) ->setValue('hide_download', $qb->createNamedParameter((int)$hideDownload, IQueryBuilder::PARAM_INT)); + if ($expirationTime !== null) { + $qb->setValue('expiration', $qb->createNamedParameter($expirationTime, IQueryBuilder::PARAM_DATE)); + } + /* * Added to fix https://github.com/owncloud/core/issues/22215 * Can be removed once we get rid of ajax/share.php diff --git a/apps/sharebymail/tests/ShareByMailProviderTest.php b/apps/sharebymail/tests/ShareByMailProviderTest.php index 61ad8ae3fd2..fede0d225a2 100644 --- a/apps/sharebymail/tests/ShareByMailProviderTest.php +++ b/apps/sharebymail/tests/ShareByMailProviderTest.php @@ -524,6 +524,7 @@ class ShareByMailProviderTest extends TestCase { $password = 'password'; $sendPasswordByTalk = true; $hideDownload = true; + $expiration = new \DateTime(); $instance = $this->getInstance(); @@ -540,7 +541,8 @@ class ShareByMailProviderTest extends TestCase { $token, $password, $sendPasswordByTalk, - $hideDownload + $hideDownload, + $expiration ] ); @@ -565,6 +567,7 @@ class ShareByMailProviderTest extends TestCase { $this->assertSame($password, $result[0]['password']); $this->assertSame($sendPasswordByTalk, (bool)$result[0]['password_by_talk']); $this->assertSame($hideDownload, (bool)$result[0]['hide_download']); + $this->assertSame($expiration->getTimestamp(), \DateTime::createFromFormat('Y-m-d H:i:s', $result[0]['expiration'])->getTimestamp()); } public function testUpdate() { |