зеркало из https://github.com/nextcloud/server.git
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:
Родитель
09794b6792
Коммит
56771b50c4
|
@ -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)
|
||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Загрузка…
Ссылка в новой задаче