From 1d4d308a6c0bb5b13d0dd172cf1eb3622f3e1ee6 Mon Sep 17 00:00:00 2001 From: Miguel Prokop Date: Fri, 21 Nov 2014 11:01:39 +0100 Subject: [PATCH 1/2] fix calculation of expiration date if there is a default expiration date set (but not forced) and the user does not want the link to expire. --- lib/private/share/helper.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/private/share/helper.php b/lib/private/share/helper.php index 2418535c9d..1ebcdb563a 100644 --- a/lib/private/share/helper.php +++ b/lib/private/share/helper.php @@ -189,20 +189,25 @@ class Helper extends \OC\Share\Constants { public static function calculateExpireDate($defaultExpireSettings, $creationTime, $userExpireDate = null) { $expires = false; + $defaultExpires = null; if (!empty($defaultExpireSettings['defaultExpireDateSet'])) { - $expires = $creationTime + $defaultExpireSettings['expireAfterDays'] * 86400; + $defaultExpires = $creationTime + $defaultExpireSettings['expireAfterDays'] * 86400; } if (isset($userExpireDate)) { // if the admin decided to enforce the default expire date then we only take // the user defined expire date of it is before the default expire date - if ($expires && !empty($defaultExpireSettings['enforceExpireDate'])) { - $expires = min($userExpireDate, $expires); + if ($defaultExpires && !empty($defaultExpireSettings['enforceExpireDate'])) { + $expires = min($userExpireDate, $defaultExpires); } else { $expires = $userExpireDate; } + } else { + if ($defaultExpires && !empty($defaultExpireSettings['enforceExpireDate'])) { + $expires = $defaultExpires; + } } return $expires; From 397f14ed86ce675b11f35f06ffac30af6c17ade0 Mon Sep 17 00:00:00 2001 From: Miguel Prokop Date: Fri, 21 Nov 2014 13:31:56 +0100 Subject: [PATCH 2/2] Consolidate if statement, and update unit test --- lib/private/share/helper.php | 6 ++---- tests/lib/share/helper.php | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/private/share/helper.php b/lib/private/share/helper.php index 1ebcdb563a..6bbb101db3 100644 --- a/lib/private/share/helper.php +++ b/lib/private/share/helper.php @@ -204,10 +204,8 @@ class Helper extends \OC\Share\Constants { } else { $expires = $userExpireDate; } - } else { - if ($defaultExpires && !empty($defaultExpireSettings['enforceExpireDate'])) { - $expires = $defaultExpires; - } + } else if ($defaultExpires && !empty($defaultExpireSettings['enforceExpireDate'])) { + $expires = $defaultExpires; } return $expires; diff --git a/tests/lib/share/helper.php b/tests/lib/share/helper.php index 76046d360b..7a546410ae 100644 --- a/tests/lib/share/helper.php +++ b/tests/lib/share/helper.php @@ -27,8 +27,8 @@ class Test_Share_Helper extends \Test\TestCase { array(array('defaultExpireDateSet' => false), 2000000000, 2000010000, 2000010000), // no default expire date and no user defined expire date, return false array(array('defaultExpireDateSet' => false), 2000000000, null, false), - // unenforced expire data and no user defined expire date, take default expire date - array(array('defaultExpireDateSet' => true, 'expireAfterDays' => 1, 'enforceExpireDate' => false), 2000000000, null, 2000086400), + // unenforced expire data and no user defined expire date, return false (because the default is not enforced) + array(array('defaultExpireDateSet' => true, 'expireAfterDays' => 1, 'enforceExpireDate' => false), 2000000000, null, false), // enforced expire date and no user defined expire date, take default expire date array(array('defaultExpireDateSet' => true, 'expireAfterDays' => 1, 'enforceExpireDate' => true), 2000000000, null, 2000086400), // unenforced expire date and user defined date > default expire date, take users expire date @@ -49,6 +49,4 @@ class Test_Share_Helper extends \Test\TestCase { $result = \OC\Share\Helper::calculateExpireDate($defaultExpireSettings, $creationTime, $userExpireDate); $this->assertSame($expected, $result); } - - }