diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2016-01-29 11:34:38 +0100 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2016-01-29 11:34:38 +0100 |
commit | 62b9e81919bb5c87183c58dbc1e856228fbfa9aa (patch) | |
tree | d8f89e835fb1a76aa1f3191c1c5f94a91faa09f9 /lib/private | |
parent | ede1cbf61245a269be5e2bb8fb27bcaa6b44f1a9 (diff) | |
parent | 1ff4ec1cd33c115a5d905141ea0d9667f063d109 (diff) | |
download | nextcloud-server-62b9e81919bb5c87183c58dbc1e856228fbfa9aa.tar.gz nextcloud-server-62b9e81919bb5c87183c58dbc1e856228fbfa9aa.zip |
Merge pull request #21995 from owncloud/share2_delete_user_defined_group_shares
[Share 2.0] When deleting a group share delete children
Diffstat (limited to 'lib/private')
-rw-r--r-- | lib/private/share20/defaultshareprovider.php | 18 |
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(); } /** |