mirror of
https://github.com/nextcloud/server.git
synced 2026-02-20 00:12:30 -05:00
Consider share type for enforced share expiry dates
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>
This commit is contained in:
parent
09794b6792
commit
56771b50c4
9 changed files with 25 additions and 35 deletions
|
|
@ -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)
|
||||
|
|
|
|||
6
dist/6898-6898.js → dist/188-188.js
vendored
6
dist/6898-6898.js → dist/188-188.js
vendored
File diff suppressed because one or more lines are too long
1
dist/188-188.js.map
vendored
Normal file
1
dist/188-188.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/6898-6898.js.map
vendored
1
dist/6898-6898.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files_sharing-files_sharing_tab.js
vendored
4
dist/files_sharing-files_sharing_tab.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files_sharing-files_sharing_tab.js.map
vendored
2
dist/files_sharing-files_sharing_tab.js.map
vendored
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue