Browse Source

fix(files_sharing): Apply default password setting in SharingDetailsTab

Signed-off-by: nfebe <fenn25.fn@gmail.com>
pull/52121/head
nfebe 7 months ago
parent
commit
02efad600a
  1. 18
      apps/files_sharing/src/components/SharingEntryLink.vue
  2. 21
      apps/files_sharing/src/mixins/SharesMixin.js
  3. 23
      apps/files_sharing/src/views/SharingDetailsTab.vue

18
apps/files_sharing/src/components/SharingEntryLink.vue

@ -228,7 +228,6 @@ import { showError, showSuccess } from '@nextcloud/dialogs'
import { ShareType } from '@nextcloud/sharing'
import VueQrcode from '@chenfengyuan/vue-qrcode'
import moment from '@nextcloud/moment'
import Vue from 'vue'
import NcActionButton from '@nextcloud/vue/components/NcActionButton'
import NcActionCheckbox from '@nextcloud/vue/components/NcActionCheckbox'
@ -391,23 +390,6 @@ export default {
}
return null
},
/**
* Is the current share password protected ?
*
* @return {boolean}
*/
isPasswordProtected: {
get() {
return this.config.enforcePasswordForPublicLink
|| !!this.share.password
},
async set(enabled) {
// TODO: directly save after generation to make sure the share is always protected
Vue.set(this.share, 'password', enabled ? await GeneratePassword(true) : '')
Vue.set(this.share, 'newPassword', this.share.password)
},
},
passwordExpirationTime() {
if (this.share.passwordExpirationTime === null) {
return null

21
apps/files_sharing/src/mixins/SharesMixin.js

@ -11,6 +11,7 @@ import { emit } from '@nextcloud/event-bus'
import PQueue from 'p-queue'
import debounce from 'debounce'
import GeneratePassword from '../utils/GeneratePassword.ts'
import Share from '../models/Share.ts'
import SharesRequests from './ShareRequests.js'
import Config from '../services/ConfigService.ts'
@ -156,6 +157,26 @@ export default {
}
return null
},
/**
* Is the current share password protected ?
*
* @return {boolean}
*/
isPasswordProtected: {
get() {
return this.config.enforcePasswordForPublicLink
|| !!this.share.password
},
async set(enabled) {
if (enabled) {
this.share.password = await GeneratePassword(true)
this.$set(this.share, 'newPassword', this.share.password)
} else {
this.share.password = ''
this.$delete(this.share, 'newPassword')
}
},
},
},
methods: {

23
apps/files_sharing/src/views/SharingDetailsTab.vue

@ -496,26 +496,6 @@ export default {
: ''
},
},
/**
* Is the current share password protected ?
*
* @return {boolean}
*/
isPasswordProtected: {
get() {
return this.config.enforcePasswordForPublicLink
|| !!this.share.password
},
async set(enabled) {
if (enabled) {
this.share.password = await GeneratePassword(true)
this.$set(this.share, 'newPassword', this.share.password)
} else {
this.share.password = ''
this.$delete(this.share, 'newPassword')
}
},
},
/**
* Is the current share a folder ?
*
@ -873,8 +853,9 @@ export default {
async initializeAttributes() {
if (this.isNewShare) {
if (this.isPasswordEnforced && this.isPublicShare) {
if ((this.config.enableLinkPasswordByDefault || this.isPasswordEnforced) && this.isPublicShare) {
this.$set(this.share, 'newPassword', await GeneratePassword(true))
this.$set(this.share, 'password', this.share.newPassword)
this.advancedSectionAccordionExpanded = true
}
/* Set default expiration dates if configured */

Loading…
Cancel
Save