diff options
author | Christian Kamm <mail@ckamm.de> | 2018-02-09 16:39:12 +0300 |
---|---|---|
committer | ckamm <mail@ckamm.de> | 2018-02-15 11:10:47 +0300 |
commit | e7e6584cab4caa9fa4997c3d34d0402f7df43a67 (patch) | |
tree | 76e764d79c19984af23e9274fa8ac4c52469b931 /src/gui/sharemanager.cpp | |
parent | 7373c68aebc80d76a8661f274ae6b043bd227112 (diff) |
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.
Diffstat (limited to 'src/gui/sharemanager.cpp')
-rw-r--r-- | src/gui/sharemanager.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/gui/sharemanager.cpp b/src/gui/sharemanager.cpp index 9901b47cf..898295fc0 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(); } |