aboutsummaryrefslogtreecommitdiffstats
path: root/apps/sharebymail
diff options
context:
space:
mode:
authorRoeland Jago Douma <roeland@famdouma.nl>2021-03-04 13:49:21 +0100
committerRoeland Jago Douma <roeland@famdouma.nl>2021-03-04 13:49:21 +0100
commitd247a5fb47a6416dbbd2744938aadfb0045abef8 (patch)
tree68645c7bc3226be2dfbc0376d846779e7d8c9c47 /apps/sharebymail
parent3bbacb2f541a513f47e0744ab8a629b936a091d8 (diff)
downloadnextcloud-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.php10
-rw-r--r--apps/sharebymail/tests/ShareByMailProviderTest.php5
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() {