From cc6c940b9ab814b6674a36b218b1be26e94a26bd Mon Sep 17 00:00:00 2001
From: Michael Gapczynski <mtgap@owncloud.com>
Date: Sat, 14 Jul 2012 11:55:22 -0400
Subject: [PATCH] Implement post_removeFromGroup()

---
 lib/public/share.php | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/lib/public/share.php b/lib/public/share.php
index 50f2ff1c8a..b1f7468c83 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']);
+			}
+		}
 	}
 
 }
-- 
GitLab