From 6d4f80d680bfd45293a055b1c2502f512cbf1070 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Thu, 25 Feb 2016 14:21:46 +0100 Subject: Set default expiration date if none given on share creation When we create a share for the first time we should set the default expiration date. If none is given. Fixes #22642 --- lib/private/share20/manager.php | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'lib') diff --git a/lib/private/share20/manager.php b/lib/private/share20/manager.php index 9b33e947557..73a25886206 100644 --- a/lib/private/share20/manager.php +++ b/lib/private/share20/manager.php @@ -224,7 +224,7 @@ class Manager implements IManager { * Validate if the expiration date fits the system settings * * @param \OCP\Share\IShare $share The share to validate the expiration date of - * @return \OCP\Share\IShare The expiration date or null if $expireDate was null and it is not required + * @return \OCP\Share\IShare The modified share object * @throws GenericShareException * @throws \InvalidArgumentException * @throws \Exception @@ -245,6 +245,20 @@ class Manager implements IManager { } } + // If expiredate is empty set a default one if there is a default + $fullId = null; + try { + $fullId = $share->getFullId(); + } catch (\UnexpectedValueException $e) { + // This is a new share + } + + if ($fullId === null && $expirationDate === null && $this->shareApiLinkDefaultExpireDate()) { + $expirationDate = new \DateTime(); + $expirationDate->setTime(0,0,0); + $expirationDate->add(new \DateInterval('P'.$this->shareApiLinkDefaultExpireDays().'D')); + } + // If we enforce the expiration date check that is does not exceed if ($this->shareApiLinkDefaultExpireDateEnforced()) { if ($expirationDate === null) { @@ -260,20 +274,6 @@ class Manager implements IManager { } } - // If expiredate is empty set a default one if there is a default - $fullId = null; - try { - $fullId = $share->getFullId(); - } catch (\UnexpectedValueException $e) { - // This is a new share - } - - if ($fullId === null && $expirationDate === null && $this->shareApiLinkDefaultExpireDate()) { - $expirationDate = new \DateTime(); - $expirationDate->setTime(0,0,0); - $expirationDate->add(new \DateInterval('P'.$this->shareApiLinkDefaultExpireDays().'D')); - } - $accepted = true; $message = ''; \OCP\Util::emitHook('\OC\Share', 'verifyExpirationDate', [ @@ -289,7 +289,7 @@ class Manager implements IManager { $share->setExpirationDate($expirationDate); - return $expirationDate; + return $share; } /** -- cgit v1.2.3