Skip to content

Commit d2b738f

Browse files
Merge pull request #1991 from nextcloud/backport/1989/stable31
[stable31] update child share permissions
2 parents fa13d53 + c956539 commit d2b738f

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

lib/Db/ShareWrapperRequest.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,22 @@ public function update(ShareWrapper $shareWrapper): void {
9393
$qb->execute();
9494
}
9595

96+
/**
97+
* update permissions and attributes from child
98+
*/
99+
public function updateChildPermissions(ShareWrapper $shareWrapper): void {
100+
$qb = $this->getShareUpdateSql();
101+
$shareAttributes = $this->formatShareAttributes($shareWrapper->getAttributes());
102+
103+
$qb->set('permissions', $qb->createNamedParameter($shareWrapper->getPermissions()))
104+
->set('attributes', $qb->createNamedParameter($shareAttributes));
105+
106+
$qb->limitToShareParent((int)$shareWrapper->getId());
107+
$qb->gt('permissions', 0);
108+
109+
$qb->execute();
110+
}
111+
96112

97113
/**
98114
* @param Membership $membership

lib/Service/ShareWrapperService.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,10 @@ public function update(ShareWrapper $shareWrapper): void {
9191
$this->shareWrapperRequest->update($shareWrapper);
9292
}
9393

94+
public function updateChildPermissions(ShareWrapper $shareWrapper): void {
95+
$this->cache->clear('');
96+
$this->shareWrapperRequest->updateChildPermissions($shareWrapper);
97+
}
9498

9599
/**
96100
* @param ShareWrapper $shareWrapper

lib/ShareByCircleProvider.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@ public function update(IShare $share): IShare {
212212
->setShareNote($share->getNote());
213213

214214
$this->shareWrapperService->update($wrappedShare);
215+
$this->shareWrapperService->updateChildPermissions($wrappedShare);
215216

216217
return $wrappedShare->getShare($this->rootFolder, $this->userManager, $this->urlGenerator);
217218
}

0 commit comments

Comments
 (0)