Skip to content

Commit 0f56fb4

Browse files
committed
fix(files_sharing): Also set the expiration date timezone during validation
This is needed as we want to store the difference between the server's and the user's timezones. Signed-off-by: Louis Chemineau <louis@chmn.me>
1 parent eed6216 commit 0f56fb4

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

lib/private/Share20/Manager.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,10 +276,11 @@ protected function validateExpirationDateInternal(IShare $share) {
276276

277277
// If $expirationDate is falsy, noExpirationDate is true and expiration not enforced
278278
// Then skip expiration date validation as null is accepted
279-
if(!($share->getNoExpirationDate() && !$isEnforced)) {
280-
if ($expirationDate != null) {
279+
if(!$share->getNoExpirationDate() || $isEnforced) {
280+
if ($expirationDate !== null) {
281281
$expirationDate->setTimezone($this->dateTimeZone->getTimeZone());
282282
$expirationDate->setTime(0, 0, 0);
283+
$expirationDate->setTimezone(new \DateTimeZone(date_default_timezone_get()));
283284

284285
$date = new \DateTime('now', $this->dateTimeZone->getTimeZone());
285286
$date->setTime(0, 0, 0);
@@ -300,6 +301,7 @@ protected function validateExpirationDateInternal(IShare $share) {
300301
if ($fullId === null && $expirationDate === null && $defaultExpireDate) {
301302
$expirationDate = new \DateTime('now', $this->dateTimeZone->getTimeZone());
302303
$expirationDate->setTime(0, 0, 0);
304+
$expirationDate->setTimezone(new \DateTimeZone(date_default_timezone_get()));
303305
$days = (int)$this->config->getAppValue('core', $configProp, (string)$defaultExpireDays);
304306
if ($days > $defaultExpireDays) {
305307
$days = $defaultExpireDays;

0 commit comments

Comments
 (0)