Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kamm <mail@ckamm.de>2018-02-09 16:39:12 +0300
committerckamm <mail@ckamm.de>2018-02-15 11:10:47 +0300
commite7e6584cab4caa9fa4997c3d34d0402f7df43a67 (patch)
tree76e764d79c19984af23e9274fa8ac4c52469b931 /src/gui/sharemanager.cpp
parent7373c68aebc80d76a8661f274ae6b043bd227112 (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.cpp15
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();
}