Merge pull request #12350 from mprokop/link_expiration
fix calculation of expiration date if there is a default expiration date...
This commit is contained in:
commit
60e4aa120f
|
@ -189,20 +189,23 @@ 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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue