We have three kind of share expiry date enforcements. - `isDefaultExpireDateEnforced` - `isDefaultInternalExpireDateEnforced` - `isDefaultRemoteExpireDateEnforced` Before these commit, `isExpiryDateEnforced` that is used to disable/enable the set expiry date checkbox does not take those into consideration which is problematic as those have different applications. In addition, this commit now uses `isExpiryDateEnforced` to disable/enable the input for expiry date that shows up before the creation of link shares. Here, `hasExpirationDate` is also removed from 'SharingEntryLink` component as it is not used. Signed-off-by: fenn-cs <fenn25.fn@gmail.com> Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>tags/v28.0.0beta1
@@ -97,7 +97,7 @@ | |||
</NcActionText> | |||
<NcActionInput v-if="pendingExpirationDate" | |||
class="share-link-expire-date" | |||
:disabled="saving" | |||
:disabled="saving || isExpiryDateEnforced" | |||
:is-native-picker="true" | |||
:hide-label="true" | |||
:value="new Date(share.expireDate)" | |||
@@ -302,34 +302,12 @@ export default { | |||
} | |||
return null | |||
}, | |||
/** | |||
* Does the current share have an expiration date | |||
* | |||
* @return {boolean} | |||
*/ | |||
hasExpirationDate: { | |||
get() { | |||
return this.config.isDefaultExpireDateEnforced | |||
|| !!this.share.expireDate | |||
}, | |||
set(enabled) { | |||
const defaultExpirationDate = this.config.defaultExpirationDate | |||
|| new Date(new Date().setDate(new Date().getDate() + 1)) | |||
this.share.expireDate = enabled | |||
? this.formatDateToString(defaultExpirationDate) | |||
: '' | |||
console.debug('Expiration date status', enabled, this.share.expireDate) | |||
}, | |||
}, | |||
dateMaxEnforced() { | |||
if (this.config.isDefaultExpireDateEnforced) { | |||
return new Date(new Date().setDate(new Date().getDate() + this.config.defaultExpireDate)) | |||
} | |||
return null | |||
}, | |||
/** | |||
* Is the current share password protected ? | |||
* |
@@ -135,6 +135,15 @@ export default { | |||
isShareOwner() { | |||
return this.share && this.share.owner === getCurrentUser().uid | |||
}, | |||
isExpiryDateEnforced() { | |||
if (this.isPublicShare) { | |||
return this.config.isDefaultExpireDateEnforced | |||
} | |||
if (this.isRemoteShare) { | |||
return this.config.isDefaultRemoteExpireDateEnforced || this.config.isDefaultExpireDateEnforced | |||
} | |||
return this.config.isDefaultInternalExpireDateEnforced || this.config.isDefaultExpireDateEnforced | |||
}, | |||
hasCustomPermissions() { | |||
const bundledPermissions = [ | |||
BUNDLED_PERMISSIONS.ALL, |
@@ -368,7 +368,13 @@ export default { | |||
*/ | |||
hasExpirationDate: { | |||
get() { | |||
return !!this.share.expireDate || this.config.isDefaultInternalExpireDateEnforced | |||
if (this.isPublicShare) { | |||
return !!this.share.expireDate || this.config.isDefaultExpireDateEnforced | |||
} | |||
if (this.isRemoteShare) { | |||
return !!this.share.expireDate || this.config.isDefaultInternalExpireDateEnforced || this.config.isDefaultExpireDateEnforced | |||
} | |||
return !!this.share.expireDate || this.config.isDefaultInternalExpireDateEnforced || this.config.isDefaultExpireDateEnforced | |||
}, | |||
set(enabled) { | |||
this.share.expireDate = enabled | |||
@@ -401,7 +407,7 @@ export default { | |||
return this.fileInfo.type === 'dir' | |||
}, | |||
dateMaxEnforced() { | |||
if (!this.isRemote && this.config.isDefaultInternalExpireDateEnforced) { | |||
if (!this.isRemoteShare && this.config.isDefaultInternalExpireDateEnforced) { | |||
return new Date(new Date().setDate(new Date().getDate() + 1 + this.config.defaultInternalExpireDate)) | |||
} else if (this.config.isDefaultRemoteExpireDateEnforced) { | |||
return new Date(new Date().setDate(new Date().getDate() + 1 + this.config.defaultRemoteExpireDate)) | |||
@@ -430,9 +436,6 @@ export default { | |||
isPasswordEnforced() { | |||
return this.isPublicShare && this.config.enforcePasswordForPublicLink | |||
}, | |||
isExpiryDateEnforced() { | |||
return this.config.isDefaultInternalExpireDateEnforced | |||
}, | |||
defaultExpiryDate() { | |||
if ((this.isGroupShare || this.isUserShare) && this.config.isDefaultInternalExpireDateEnabled) { | |||
return new Date(this.config.defaultInternalExpirationDate) |