Skip to content

Commit

Permalink
Sharing: Use maximum allowed permissions for new share #6346
Browse files Browse the repository at this point in the history
The client already computed the valid permissions, there was just a typo
that meant we didn't end up using them.
  • Loading branch information
ckamm committed Feb 9, 2018
1 parent dbc2d4a commit 01d18f5
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions src/gui/sharemanager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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();
}
Expand Down

0 comments on commit 01d18f5

Please sign in to comment.