Merge pull request #55580 from nextcloud/fix/share-permissions-password-validation

fix(files_sharing): Only send password on change
pull/55893/head
F. E Noel Nfebe 2025-10-21 22:08:17 +07:00 committed by GitHub
commit 87b94c7f52
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 27 additions and 14 deletions

@ -1344,10 +1344,13 @@ class ShareAPIController extends OCSController {
$share->setPermissions($permissions);
}
if ($password === '') {
$share->setPassword(null);
} elseif ($password !== null) {
$share->setPassword($password);
$passwordParamSent = $password !== null;
if ($passwordParamSent) {
if ($password === '') {
$share->setPassword(null);
} else {
$share->setPassword($password);
}
}
if ($label !== null) {

@ -316,7 +316,9 @@ export default {
// share api controller accepts
for (const name of propertyNames) {
if (name === 'password') {
properties[name] = this.share.newPassword ?? this.share.password
if (this.share.newPassword !== undefined) {
properties[name] = this.share.newPassword
}
continue
}

@ -1054,7 +1054,11 @@ export default {
async saveShare() {
const permissionsAndAttributes = ['permissions', 'attributes', 'note', 'expireDate']
const publicShareAttributes = ['label', 'password', 'hideDownload']
const publicShareAttributes = ['label', 'hideDownload']
// Only include password if it's being actively changed
if (this.hasUnsavedPassword) {
publicShareAttributes.push('password')
}
if (this.config.allowCustomTokens) {
publicShareAttributes.push('token')
}
@ -1221,7 +1225,11 @@ export default {
* "sendPasswordByTalk".
*/
onPasswordProtectedByTalkChange() {
this.queueUpdate('sendPasswordByTalk', 'password')
if (this.isEmailShareType || this.hasUnsavedPassword) {
this.queueUpdate('sendPasswordByTalk', 'password')
} else {
this.queueUpdate('sendPasswordByTalk')
}
},
isValidShareAttribute(value) {

2
dist/1626-1626.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
1626-1626.js.license

2
dist/8906-8906.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
8906-8906.js.license

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long