</NcActionText>
<NcActionInput v-if="pendingExpirationDate"
class="share-link-expire-date"
- :disabled="saving || isExpiryDateEnforced"
+ :disabled="saving"
:is-native-picker="true"
:hide-label="true"
:value="new Date(share.expireDate)"
type="date"
:min="dateTomorrow"
- :max="dateMaxEnforced"
+ :max="maxExpirationDateEnforced"
@input="onExpirationChange">
<!-- let's not submit when picked, the user
might want to still edit or copy the password -->
}
return null
},
- 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 ?
*
const shareType = this.share.shareType ?? this.share.type
return [this.SHARE_TYPES.SHARE_TYPE_LINK, this.SHARE_TYPES.SHARE_TYPE_EMAIL].includes(shareType)
},
+ isRemoteShare() {
+ return this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP || this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE
+ },
isShareOwner() {
return this.share && this.share.owner === getCurrentUser().uid
},
]
return !bundledPermissions.includes(this.share.permissions)
},
+ maxExpirationDateEnforced() {
+ if (this.isExpiryDateEnforced) {
+ if (this.isPublicShare) {
+ return this.config.defaultExpirationDate
+ }
+ if (this.isRemoteShare) {
+ return this.config.defaultRemoteExpirationDateString
+ }
+ // If it get's here then it must be an internal share
+ return this.config.defaultInternalExpirationDate
+ }
+ return null
+ },
},
methods: {
</div>
</div>
<div class="sharingTabDetailsView__advanced-control">
- <NcButton type="tertiary"
- id="advancedSectionAccordionAdvancedControl"
+ <NcButton id="advancedSectionAccordionAdvancedControl"
+ type="tertiary"
alignment="end-reverse"
aria-controls="advancedSectionAccordionAdvanced"
:aria-expanded="advancedControlExpandedValue"
</template>
</NcButton>
</div>
- <div v-if="advancedSectionAccordionExpanded" id="advancedSectionAccordionAdvanced" class="sharingTabDetailsView__advanced"
- aria-labelledby="advancedSectionAccordionAdvancedControl" role="region">
+ <div v-if="advancedSectionAccordionExpanded"
+ id="advancedSectionAccordionAdvanced"
+ class="sharingTabDetailsView__advanced"
+ aria-labelledby="advancedSectionAccordionAdvancedControl"
+ role="region">
<section>
<NcInputField v-if="isPublicShare"
:value.sync="share.label"
isFolder() {
return this.fileInfo.type === 'dir'
},
- maxExpirationDateEnforced() {
- if (this.isExpiryDateEnforced) {
- if (this.isPublicShare) {
- return this.config.defaultExpirationDate
- }
- if (this.isRemoteShare) {
- return this.config.defaultRemoteExpirationDateString
- }
- // If it get's here then it must be an internal share
- return this.config.defaultInternalExpirationDate
- }
- return null
- },
/**
* @return {boolean}
*/
isGroupShare() {
return this.share.type === this.SHARE_TYPES.SHARE_TYPE_GROUP
},
- isRemoteShare() {
- return this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP || this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE
- },
isNewShare() {
return this.share.id === null || this.share.id === undefined
},
},
advancedControlExpandedValue() {
return this.advancedSectionAccordionExpanded ? 'true' : 'false'
- }
+ },
},
watch: {
setCustomPermissions(isChecked) {
return
}
+ // If there is an enforced expiry date, then existing shares created before enforcement
+ // have no expiry date, hence we set it here.
+ if (!this.isValidShareAttribute(this.share.expireDate) && this.isExpiryDateEnforced) {
+ this.hasExpirationDate = true
+ }
+
if (
this.isValidShareAttribute(this.share.password)
|| this.isValidShareAttribute(this.share.expireDate)
if (!this.writeNoteToRecipientIsChecked) {
this.share.note = ''
}
-
if (this.isPasswordProtected) {
- if (this.isValidShareAttribute(this.share.newPassword)) {
+ if (this.hasUnsavedPassword && this.isValidShareAttribute(this.share.newPassword)) {
this.share.password = this.share.newPassword
this.$delete(this.share, 'newPassword')
- } else {
- if (this.isPasswordEnforced) {
- this.passwordError = true
- return
- }
+ } else if (this.isPasswordEnforced && !this.isValidShareAttribute(this.share.password)) {
+ this.passwordError = true
}
} else {
this.share.password = ''