diff options
-rw-r--r-- | lib/public/share.php | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/public/share.php b/lib/public/share.php index 50f2ff1c8a2..b1f7468c83e 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -761,7 +761,16 @@ class Share { } public static function post_removeFromGroup($arguments) { - // TODO + $query = \OC_DB::prepare('SELECT id, share_type FROM *PREFIX*share WHERE (share_type = ? AND share_with = ?) OR (share_type = ? AND share_with = ?)'); + $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'], self::$shareTypeGroupUserUnique, $arguments['uid'])); + while ($item = $result->fetchRow()) { + if ($item['share_type'] == self::SHARE_TYPE_GROUP) { + // Delete all reshares by this user of the group share + self::delete($item['id'], true, $arguments['uid']); + } else { + self::delete($item['id']); + } + } } } |