mirror of
https://github.com/nextcloud/desktop.git
synced 2025-10-26 11:17:43 +00:00
Merge pull request #302 from nextcloud/upstream/pr/6352
Sharing: Use maximum allowed permissions for new share #6346
This commit is contained in:
commit
3b4fcfcc65
@ -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();
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user