From 7154a001d6f1c689df099571507d78a3d29d290c Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Fri, 9 Feb 2018 14:39:12 +0100 Subject: [PATCH] Sharing: Use maximum allowed permissions for new share #6346 The client already computed the valid permissions, there was just a typo that meant we didn't end up using them. --- src/gui/sharemanager.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/gui/sharemanager.cpp b/src/gui/sharemanager.cpp index 004f5d7c4f..7efc370767 100644 --- a/src/gui/sharemanager.cpp +++ b/src/gui/sharemanager.cpp @@ -289,7 +289,7 @@ void ShareManager::slotLinkShareCreated(const QJsonDocument &reply) void ShareManager::createShare(const QString &path, const Share::ShareType shareType, const QString shareWith, - const Share::Permissions permissions) + const Share::Permissions desiredPermissions) { auto job = new OcsShareJob(_account); connect(job, &OcsJob::ocsError, this, &ShareManager::slotOcsError); @@ -305,17 +305,18 @@ void ShareManager::createShare(const QString &path, // Limit the permissions we request for a share to the ones the item // was shared with initially. - auto perm = permissions; - if (permissions == SharePermissionDefault) { - perm = existingPermissions; - } else if (existingPermissions != SharePermissionDefault) { - perm &= existingPermissions; + auto validPermissions = desiredPermissions; + if (validPermissions == SharePermissionDefault) { + validPermissions = existingPermissions; + } + if (existingPermissions != SharePermissionDefault) { + validPermissions &= existingPermissions; } OcsShareJob *job = new OcsShareJob(_account); connect(job, &OcsShareJob::shareJobFinished, this, &ShareManager::slotShareCreated); connect(job, &OcsJob::ocsError, this, &ShareManager::slotOcsError); - job->createShare(path, shareType, shareWith, permissions); + job->createShare(path, shareType, shareWith, validPermissions); }); job->getSharedWithMe(); }