]> source.dussan.org Git - nextcloud-server.git/commitdiff
Listen to post_deleteGroup hook in Share API
authorMichael Gapczynski <mtgap@owncloud.com>
Mon, 3 Sep 2012 00:01:09 +0000 (20:01 -0400)
committerMichael Gapczynski <mtgap@owncloud.com>
Mon, 3 Sep 2012 00:01:09 +0000 (20:01 -0400)
lib/public/share.php
tests/lib/share/share.php

index a7a47ee14c6cb52414f0fcae19324b12996c9898..7b6b78561d4b55a84e8be8265e1a46a9c9af3143 100644 (file)
@@ -23,6 +23,7 @@ namespace OCP;
 \OC_Hook::connect('OC_User', 'post_deleteUser', 'OCP\Share', 'post_deleteUser');
 \OC_Hook::connect('OC_User', 'post_addToGroup', 'OCP\Share', 'post_addToGroup');
 \OC_Hook::connect('OC_User', 'post_removeFromGroup', 'OCP\Share', 'post_removeFromGroup');
+\OC_Hook::connect('OC_User', 'post_deleteGroup', 'OCP\Share', 'post_deleteGroup');
 
 /**
 * This class provides the ability for apps to share their content between users.
@@ -1069,6 +1070,14 @@ class Share {
                }
        }
 
+       public static function post_deleteGroup($arguments) {
+               $query = \OC_DB::prepare('SELECT id FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?');
+               $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid']));
+               while ($item = $result->fetchRow()) {
+                       self::delete($item['id']);
+               }
+       }
+
 }
 
 /**
index 082e265571bff05e26bcfd6266dc3ecc20f7efed..b45779038baee5ea939bab42e3e596ed78687fda 100644 (file)
@@ -384,6 +384,10 @@ class Test_Share extends UnitTestCase {
                $this->assertEqual(OCP\Share::getItemsSharedWith('test', Test_Share_Backend::FORMAT_TARGET), array('test.txt'));
                
                // Remove group
+               OC_Group::deleteGroup($this->group1);
+               $this->assertEqual(OCP\Share::getItemsSharedWith('test', Test_Share_Backend::FORMAT_TARGET), array());
+               OC_User::setUserId($this->user3);
+               $this->assertEqual(OCP\Share::getItemsShared('test'), array());
        }
 
 }