@@ -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 ;
@@ -360,7 +362,7 @@ protected function validateExpirationDateLink(IShare $share) {
360362 if ($ expirationDate !== null ) {
361363 $ expirationDate ->setTimezone ($ this ->dateTimeZone ->getTimeZone ());
362364 $ expirationDate ->setTime (0 , 0 , 0 );
363-
365+
364366 $ date = new \DateTime ('now ' , $ this ->dateTimeZone ->getTimeZone ());
365367 $ date ->setTime (0 , 0 , 0 );
366368 if ($ date >= $ expirationDate ) {
@@ -376,24 +378,24 @@ protected function validateExpirationDateLink(IShare $share) {
376378 } catch (\UnexpectedValueException $ e ) {
377379 // This is a new share
378380 }
379-
381+
380382 if ($ fullId === null && $ expirationDate === null && $ this ->shareApiLinkDefaultExpireDate ()) {
381383 $ expirationDate = new \DateTime ('now ' , $ this ->dateTimeZone ->getTimeZone ());
382384 $ expirationDate ->setTime (0 , 0 , 0 );
383-
385+
384386 $ days = (int )$ this ->config ->getAppValue ('core ' , 'link_defaultExpDays ' , (string )$ this ->shareApiLinkDefaultExpireDays ());
385387 if ($ days > $ this ->shareApiLinkDefaultExpireDays ()) {
386388 $ days = $ this ->shareApiLinkDefaultExpireDays ();
387389 }
388390 $ expirationDate ->add (new \DateInterval ('P ' . $ days . 'D ' ));
389391 }
390-
392+
391393 // If we enforce the expiration date check that is does not exceed
392394 if ($ isEnforced ) {
393395 if (empty ($ expirationDate )) {
394396 throw new \InvalidArgumentException ('Expiration date is enforced ' );
395397 }
396-
398+
397399 $ date = new \DateTime ('now ' , $ this ->dateTimeZone ->getTimeZone ());
398400 $ date ->setTime (0 , 0 , 0 );
399401 $ date ->add (new \DateInterval ('P ' . $ this ->shareApiLinkDefaultExpireDays () . 'D ' ));
0 commit comments