summaryrefslogtreecommitdiffstats
path: root/lib/public/share.php
diff options
context:
space:
mode:
authorben-denham <bend@catalyst.net.nz>2014-01-06 11:14:43 +1300
committerben-denham <bend@catalyst.net.nz>2014-01-06 11:14:43 +1300
commitbaccc8f584940d607393ef2bdd9c6d3e511b75b8 (patch)
tree4d8c2cd71d1611cd2731431da548b504dc2f82ff /lib/public/share.php
parentce3df4469909852ddaa1b35addd4c0e8a9a68195 (diff)
downloadnextcloud-server-baccc8f584940d607393ef2bdd9c6d3e511b75b8.tar.gz
nextcloud-server-baccc8f584940d607393ef2bdd9c6d3e511b75b8.zip
Unshare all will now delete all shares for the item, instead of only for a single owner.
Diffstat (limited to 'lib/public/share.php')
-rw-r--r--lib/public/share.php10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/public/share.php b/lib/public/share.php
index f0fd8e1ab1b..eb1dd8d1c95 100644
--- a/lib/public/share.php
+++ b/lib/public/share.php
@@ -655,7 +655,15 @@ class Share {
* @return Returns true on success or false on failure
*/
public static function unshareAll($itemType, $itemSource) {
- if ($shares = self::getItemShared($itemType, $itemSource)) {
+ // Get all of the owners of shares of this item.
+ $query = \OC_DB::prepare( 'SELECT `uid_owner` from `*PREFIX*share` WHERE `item_type`=? AND `item_source`=?' );
+ $result = $query->execute(array($itemType, $itemSource));
+ $shares = array();
+ // Add each owner's shares to the array of all shares for this item.
+ while ($row = $result->fetchRow()) {
+ $shares = array_merge($shares, self::getItems($itemType, $itemSource, null, null, $row['uid_owner']));
+ }
+ if (!empty($shares)) {
// Pass all the vars we have for now, they may be useful
$hookParams = array(
'itemType' => $itemType,