feat(Sharing): Add hint for enforced expiration date

Signed-off-by: provokateurin <kate@provokateurin.de>
pull/62599/head
provokateurin 3 weeks ago
parent 801a5b3bab
commit a74991bd2d
No known key found for this signature in database
  1. 16
      core/Sharing/Property/ExpirationDateSharePropertyType.php

@ -40,6 +40,10 @@ final class ExpirationDateSharePropertyType extends ADateSharePropertyType imple
#[\Override]
public function getHint(IFactory $l10nFactory, Share $share): ?string {
if ($this->isRequired($share)) {
return $l10nFactory->get(Application::APP_ID)->t('Your administrator has enforced a %d days expiration policy.', [$this->getMaxExpirationDays($share)]);
}
return null;
}
@ -62,6 +66,7 @@ final class ExpirationDateSharePropertyType extends ADateSharePropertyType imple
if ($this->hasRemoteRecipient($share) && $this->legacyManager->shareApiRemoteDefaultExpireDateEnforced()) {
return true;
}
return $this->hasLocalNonTokenAndEmailRecipient($share) && $this->legacyManager->shareApiInternalDefaultExpireDateEnforced();
}
@ -86,7 +91,7 @@ final class ExpirationDateSharePropertyType extends ADateSharePropertyType imple
return null;
}
private function getMaxExpirationDate(Share $share): ?DateTimeImmutable {
private function getMaxExpirationDays(Share $share): ?int {
$days = INF;
if ($this->hasTokenOrEmailRecipient($share) && $this->legacyManager->shareApiLinkDefaultExpireDate()) {
@ -102,6 +107,15 @@ final class ExpirationDateSharePropertyType extends ADateSharePropertyType imple
}
if ($days !== INF) {
return $days;
}
return null;
}
private function getMaxExpirationDate(Share $share): ?DateTimeImmutable {
$days = $this->getMaxExpirationDays($share);
if ($days !== null) {
return $this->now->add(new DateInterval('P' . $days . 'D'));
}

Loading…
Cancel
Save