diff options
author | Arthur Schiwon <blizzz@owncloud.com> | 2015-12-03 16:35:57 +0100 |
---|---|---|
committer | Arthur Schiwon <blizzz@owncloud.com> | 2015-12-09 14:34:23 +0100 |
commit | e3dbc3d40ccd9874dadb32b59633cb159afddc48 (patch) | |
tree | 84495c8990e907cde07185c716afba91fc54a517 /lib/private | |
parent | 2ce2de0ae523e91b90c39a91fdcc975f06a7674a (diff) | |
download | nextcloud-server-e3dbc3d40ccd9874dadb32b59633cb159afddc48.tar.gz nextcloud-server-e3dbc3d40ccd9874dadb32b59633cb159afddc48.zip |
different strategy in cleaning up after user was deleted
we do not listen to deletion hooks anymore, because there is no guarantee that they
will be heard - requires that something fetches the CommentsManager first.
Instead, in the user deletion routine the clean up method will be called directly. Same way
as it happens for files, group memberships, config values.
Diffstat (limited to 'lib/private')
-rw-r--r-- | lib/private/comments/manager.php | 5 | ||||
-rw-r--r-- | lib/private/comments/managerfactory.php | 1 | ||||
-rw-r--r-- | lib/private/server.php | 3 | ||||
-rw-r--r-- | lib/private/user/user.php | 2 |
4 files changed, 5 insertions, 6 deletions
diff --git a/lib/private/comments/manager.php b/lib/private/comments/manager.php index 78b2b71c8dd..bb0782c77fd 100644 --- a/lib/private/comments/manager.php +++ b/lib/private/comments/manager.php @@ -23,15 +23,10 @@ class Manager implements ICommentsManager { public function __construct( IDBConnection $dbConn, - Emitter $userManager, ILogger $logger ) { $this->dbConn = $dbConn; $this->logger = $logger; - $userManager->listen('\OC\User', 'postDelete', function($user) { - /** @var \OCP\IUser $user */ - $this->deleteReferencesOfActor('user', $user->getUid()); - }); } /** diff --git a/lib/private/comments/managerfactory.php b/lib/private/comments/managerfactory.php index 71d73571b10..0c9fce3e640 100644 --- a/lib/private/comments/managerfactory.php +++ b/lib/private/comments/managerfactory.php @@ -17,7 +17,6 @@ class ManagerFactory implements ICommentsManagerFactory { public function getManager() { return new Manager( \oc::$server->getDatabaseConnection(), - \oc::$server->getUserManager(), \oc::$server->getLogger() ); } diff --git a/lib/private/server.php b/lib/private/server.php index ecac18d6a9b..8439500706d 100644 --- a/lib/private/server.php +++ b/lib/private/server.php @@ -1128,6 +1128,9 @@ class Server extends SimpleContainer implements IServerContainer { return $this->query('NotificationManager'); } + /** + * @return \OCP\Comments\ICommentsManager + */ public function getCommentsManager() { return $this->query('CommentsManager'); } diff --git a/lib/private/user/user.php b/lib/private/user/user.php index d827097ee39..6c89dd06f77 100644 --- a/lib/private/user/user.php +++ b/lib/private/user/user.php @@ -189,6 +189,8 @@ class User implements IUser { // Delete the users entry in the storage table \OC\Files\Cache\Storage::remove('home::' . $this->uid); + + \OC::$server->getCommentsManager()->deleteReferencesOfActor('user', $this->uid); } if ($this->emitter) { |