summaryrefslogtreecommitdiffstats
path: root/lib/private/share20/defaultshareprovider.php
diff options
context:
space:
mode:
authorRoeland Jago Douma <rullzer@owncloud.com>2016-01-28 20:35:46 +0100
committerRoeland Jago Douma <rullzer@owncloud.com>2016-01-28 20:35:46 +0100
commit1ff4ec1cd33c115a5d905141ea0d9667f063d109 (patch)
tree09b149290371ea10e98f511a6e1ff2153cfbc4d3 /lib/private/share20/defaultshareprovider.php
parent8b3d7d09d52ba169953d6a7d03ab570eb3ceed7a (diff)
downloadnextcloud-server-1ff4ec1cd33c115a5d905141ea0d9667f063d109.tar.gz
nextcloud-server-1ff4ec1cd33c115a5d905141ea0d9667f063d109.zip
[Share 2.0] When deleting a group share delete children
For group shares we can have children. Those are custom shares when a user has moved or deleted a group share. Those also have to be deleted if the group share is removed.
Diffstat (limited to 'lib/private/share20/defaultshareprovider.php')
-rw-r--r--lib/private/share20/defaultshareprovider.php18
1 files changed, 9 insertions, 9 deletions
diff --git a/lib/private/share20/defaultshareprovider.php b/lib/private/share20/defaultshareprovider.php
index baa12d6c933..35b3f71f3de 100644
--- a/lib/private/share20/defaultshareprovider.php
+++ b/lib/private/share20/defaultshareprovider.php
@@ -288,21 +288,21 @@ class DefaultShareProvider implements IShareProvider {
* Delete a share
*
* @param \OCP\Share\IShare $share
- * @throws BackendError
*/
public function delete(\OCP\Share\IShare $share) {
- // Fetch share to make sure it exists
- $share = $this->getShareById($share->getId());
-
$qb = $this->dbConn->getQueryBuilder();
$qb->delete('share')
->where($qb->expr()->eq('id', $qb->createNamedParameter($share->getId())));
-
- try {
- $qb->execute();
- } catch (\Exception $e) {
- throw new BackendError();
+
+ /*
+ * If the share is a group share delete all possible
+ * user defined groups shares.
+ */
+ if ($share->getShareType() === \OCP\Share::SHARE_TYPE_GROUP) {
+ $qb->orWhere($qb->expr()->eq('parent', $qb->createNamedParameter($share->getId())));
}
+
+ $qb->execute();
}
/**