diff options
author | ben-denham <bend@catalyst.net.nz> | 2014-01-06 02:14:43 +0400 |
---|---|---|
committer | Bjoern Schiessle <schiessle@owncloud.com> | 2014-01-16 15:14:37 +0400 |
commit | 3093c63024434085f31ef355fef88ba91357a9f7 (patch) | |
tree | adf9d9554091b67f348c2587881a041b28316cc0 /lib | |
parent | b0edbd8ebd431cffddd30d1e3232807afcd537b4 (diff) |
Unshare all will now delete all shares for the item, instead of only for a single owner.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/public/share.php | 10 |
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, |