Skip to content

Commit 2fff54e

Browse files
committed
Migrate from old hooks to symfony events
Migrate from old hooks to symfony events Signed-off-by: Sujith H <[email protected]>
1 parent 76539af commit 2fff54e

File tree

4 files changed

+57
-26
lines changed

4 files changed

+57
-26
lines changed

lib/AppInfo/Application.php

+9-3
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@
3030
use OCA\Activity\Controller\Settings;
3131
use OCA\Activity\Data;
3232
use OCA\Activity\DataHelper;
33+
use OCA\Activity\FilesHooksStatic;
3334
use OCA\Activity\GroupHelper;
3435
use OCA\Activity\FilesHooks;
36+
use OCA\Activity\Hooks;
3537
use OCA\Activity\MailQueueHandler;
3638
use OCA\Activity\Navigation;
3739
use OCA\Activity\Parameter\Factory;
@@ -287,7 +289,8 @@ public function registerHooksAndEvents() {
287289
$eventDispatcher = $this->getContainer()->getServer()->getEventDispatcher();
288290
$eventDispatcher->addListener('OCA\Files::loadAdditionalScripts', ['OCA\Activity\FilesHooksStatic', 'onLoadFilesAppScripts']);
289291

290-
Util::connectHook('OC_User', 'post_deleteUser', 'OCA\Activity\Hooks', 'deleteUser');
292+
$activityHook = new Hooks();
293+
$eventDispatcher->addListener('user.afterdelete', [$activityHook, 'deleteUser']);
291294

292295
$this->registerFilesActivity();
293296
}
@@ -296,13 +299,16 @@ public function registerHooksAndEvents() {
296299
* Register the hooks for filesystem operations
297300
*/
298301
public function registerFilesActivity() {
302+
$filesHooksStatic = new FilesHooksStatic();
303+
$eventDispatcher = $this->getContainer()->getServer()->getEventDispatcher();
304+
299305
// All other events from other apps have to be send via the Consumer
300306
Util::connectHook('OC_Filesystem', 'post_create', 'OCA\Activity\FilesHooksStatic', 'fileCreate');
301307
Util::connectHook('OC_Filesystem', 'post_update', 'OCA\Activity\FilesHooksStatic', 'fileUpdate');
302308
Util::connectHook('OC_Filesystem', 'delete', 'OCA\Activity\FilesHooksStatic', 'fileDelete');
303309
Util::connectHook('\OCA\Files_Trashbin\Trashbin', 'post_restore', 'OCA\Activity\FilesHooksStatic', 'fileRestore');
304-
Util::connectHook('OCP\Share', 'post_shared', 'OCA\Activity\FilesHooksStatic', 'share');
305-
Util::connectHook('OCP\Share', 'pre_unshare', 'OCA\Activity\FilesHooksStatic', 'unShare');
310+
$eventDispatcher->addListener('file.aftercreateshare', [$filesHooksStatic, 'share']);
311+
$eventDispatcher->addListener('file.beforeunshare', [$filesHooksStatic, 'unshare']);
306312
}
307313

308314
}

lib/FilesHooks.php

+39-16
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
use OCP\IURLGenerator;
3737
use OCP\IUser;
3838
use OCP\Share;
39+
use Symfony\Component\EventDispatcher\GenericEvent;
3940

4041
/**
4142
* The class to handle the filesystem hooks
@@ -224,32 +225,54 @@ protected function getSourcePathAndOwner($path) {
224225

225226
/**
226227
* Manage sharing events
227-
* @param array $params The hook params
228+
* @param GenericEvent $params The hook params
228229
*/
229-
public function share($params) {
230-
if ($params['itemType'] === 'file' || $params['itemType'] === 'folder') {
231-
if ((int) $params['shareType'] === Share::SHARE_TYPE_USER) {
232-
$this->shareFileOrFolderWithUser($params['shareWith'], (int) $params['fileSource'], $params['itemType'], $params['fileTarget'], true);
233-
} else if ((int) $params['shareType'] === Share::SHARE_TYPE_GROUP) {
234-
$this->shareFileOrFolderWithGroup($params['shareWith'], (int) $params['fileSource'], $params['itemType'], $params['fileTarget'], (int) $params['id'], true);
230+
public function share(GenericEvent $params) {
231+
\OC::$server->getLogger()->warning(__METHOD__ . " LOOPING . First take the count = " . count($params->getArguments()));
232+
foreach ($params->getArguments() as $argument) {
233+
\OC::$server->getLogger()->warning(__METHOD__ . " val = $argument");
234+
}
235+
if ($params->getArgument('itemType') === 'file' || $params->getArgument('itemType') === 'folder') {
236+
if ((int) $params->getArgument('shareType') === Share::SHARE_TYPE_USER) {
237+
$this->shareFileOrFolderWithUser($params->getArgument('shareWith'),
238+
(int) $params->getArgument('fileSource'),
239+
$params->getArgument('itemType'),
240+
$params->getArgument('fileTarget'), true);
241+
} else if ((int) $params->getArgument('shareType') === Share::SHARE_TYPE_GROUP) {
242+
$this->shareFileOrFolderWithGroup($params->getArgument('shareWith'),
243+
(int) $params->getArgument('fileSource'),
244+
$params->getArgument('itemType'),
245+
$params->getArgument('fileTarget'),
246+
(int) $params->getArgument('id'), true);
235247
} else if ((int) $params['shareType'] === Share::SHARE_TYPE_LINK) {
236-
$this->shareFileOrFolderByLink((int) $params['fileSource'], $params['itemType'], $params['uidOwner'], true);
248+
$this->shareFileOrFolderByLink((int) $params->getArgument('fileSource'),
249+
$params->getArgument('itemType'),
250+
$params->getArgument('uidOwner'), true);
237251
}
238252
}
239253
}
240254

241255
/**
242256
* Manage sharing events
243-
* @param array $params The hook params
257+
* @param GenericEvent $params The hook params
244258
*/
245-
public function unShare($params) {
246-
if ($params['itemType'] === 'file' || $params['itemType'] === 'folder') {
247-
if ((int) $params['shareType'] === Share::SHARE_TYPE_USER) {
248-
$this->shareFileOrFolderWithUser($params['shareWith'], (int) $params['fileSource'], $params['itemType'], $params['fileTarget'], false);
249-
} else if ((int) $params['shareType'] === Share::SHARE_TYPE_GROUP) {
250-
$this->shareFileOrFolderWithGroup($params['shareWith'], (int) $params['fileSource'], $params['itemType'], $params['fileTarget'], (int) $params['id'], false);
259+
public function unShare(GenericEvent $params) {
260+
if ($params->getArgument('itemType') === 'file' || $params->getArgument('itemType') === 'folder') {
261+
if ((int) $params->getArgument('shareType') === Share::SHARE_TYPE_USER) {
262+
$this->shareFileOrFolderWithUser($params->getArgument('shareWith'),
263+
(int) $params->getArgument('fileSource'),
264+
$params->getArgument('itemType'),
265+
$params->getArgument('fileTarget'), false);
266+
} else if ((int) $params->getArgument('shareType') === Share::SHARE_TYPE_GROUP) {
267+
$this->shareFileOrFolderWithGroup($params->getArgument('shareWith'),
268+
(int) $params->getArgument('fileSource'),
269+
$params->getArgument('itemType'),
270+
$params->getArgument('fileTarget'),
271+
(int) $params->getArgument('id'), false);
251272
} else if ((int) $params['shareType'] === Share::SHARE_TYPE_LINK) {
252-
$this->shareFileOrFolderByLink((int) $params['fileSource'], $params['itemType'], $params['uidOwner'], false);
273+
$this->shareFileOrFolderByLink((int) $params->getArgument('fileSource'),
274+
$params->getArgument('itemType'),
275+
$params->getArgument('uidOwner'), false);
253276
}
254277
}
255278
}

lib/FilesHooksStatic.php

+5-4
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
namespace OCA\Activity;
2424

2525
use OCP\Util;
26+
use Symfony\Component\EventDispatcher\GenericEvent;
2627

2728
/**
2829
* The class to handle the filesystem hooks
@@ -71,17 +72,17 @@ public static function fileRestore($params) {
7172

7273
/**
7374
* Manage sharing events
74-
* @param array $params The hook params
75+
* @param GenericEvent $params The hook params
7576
*/
76-
public static function share($params) {
77+
public static function share(GenericEvent $params) {
7778
self::getHooks()->share($params);
7879
}
7980

8081
/**
8182
* Manage sharing events
82-
* @param array $params The hook params
83+
* @param GenericEvent $params The hook params
8384
*/
84-
public static function unShare($params) {
85+
public static function unShare(GenericEvent $params) {
8586
self::getHooks()->unShare($params);
8687
}
8788

lib/Hooks.php

+4-3
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
use OCA\Activity\AppInfo\Application;
2525
use OCP\IDBConnection;
26+
use Symfony\Component\EventDispatcher\GenericEvent;
2627

2728
/**
2829
* Handles the stream and mail queue of a user when he is being deleted
@@ -33,10 +34,10 @@ class Hooks {
3334
*
3435
* @param array $params The hook params
3536
*/
36-
static public function deleteUser($params) {
37+
static public function deleteUser(GenericEvent $params) {
3738
$connection = \OC::$server->getDatabaseConnection();
38-
self::deleteUserStream($params['uid']);
39-
self::deleteUserMailQueue($connection, $params['uid']);
39+
self::deleteUserStream($params->getArgument('uid'));
40+
self::deleteUserMailQueue($connection, $params->getArgument('uid'));
4041
}
4142

4243
/**

0 commit comments

Comments
 (0)