diff --git a/apps/files_sharing/lib/Capabilities.php b/apps/files_sharing/lib/Capabilities.php index 7b911cb74dd..5fed5778b90 100644 --- a/apps/files_sharing/lib/Capabilities.php +++ b/apps/files_sharing/lib/Capabilities.php @@ -123,7 +123,13 @@ class Capabilities implements ICapability { $public['multiple_links'] = true; $public['expire_date']['enabled'] = $this->shareManager->shareApiLinkDefaultExpireDate(); if ($public['expire_date']['enabled']) { - $public['expire_date']['days'] = $this->shareManager->shareApiLinkDefaultExpireDays(); + $maxDays = $this->shareManager->shareApiLinkDefaultExpireDays(); + $defaultDays = (int)$this->config->getAppValue('core', 'link_defaultExpDays', (string)$maxDays); + if ($defaultDays > $maxDays) { + $defaultDays = $maxDays; + } + $public['expire_date']['days'] = $maxDays; + $public['expire_date']['default_days'] = $defaultDays; $public['expire_date']['enforced'] = $this->shareManager->shareApiLinkDefaultExpireDateEnforced(); } diff --git a/apps/files_sharing/src/services/ConfigService.ts b/apps/files_sharing/src/services/ConfigService.ts index 7d3a24672ea..6ccc9e595c6 100644 --- a/apps/files_sharing/src/services/ConfigService.ts +++ b/apps/files_sharing/src/services/ConfigService.ts @@ -130,8 +130,11 @@ export default class Config { * Get the default link share expiration date */ get defaultExpirationDate(): Date | null { - if (this.isDefaultExpireDateEnabled && this.defaultExpireDate !== null) { - return new Date(new Date().setDate(new Date().getDate() + this.defaultExpireDate)) + if (this.isDefaultExpireDateEnabled) { + const days = this.linkDefaultExpDays ?? this.defaultExpireDate + if (days !== null) { + return new Date(new Date().setDate(new Date().getDate() + days)) + } } return null } @@ -243,12 +246,19 @@ export default class Config { } /** - * Get the default days to link shares expiration + * Get the maximum days to link shares expiration */ get defaultExpireDate(): number | null { return window.OC.appConfig.core.defaultExpireDate } + /** + * Get the default days to link shares expiration + */ + get linkDefaultExpDays(): number | null { + return this._capabilities?.files_sharing?.public?.expire_date?.default_days ?? null + } + /** * Get the default days to internal shares expiration */