mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
Merge pull request #52428 from nextcloud/chore/dav/refactor-inline-listeners
refactor(dav): refactor inline event listeners
This commit is contained in:
commit
bb886258e0
3 changed files with 11 additions and 29 deletions
|
|
@ -9,7 +9,6 @@ declare(strict_types=1);
|
|||
*/
|
||||
namespace OCA\DAV\AppInfo;
|
||||
|
||||
use OCA\DAV\CalDAV\Activity\Backend;
|
||||
use OCA\DAV\CalDAV\AppCalendar\AppCalendarPlugin;
|
||||
use OCA\DAV\CalDAV\CachedSubscriptionProvider;
|
||||
use OCA\DAV\CalDAV\CalendarManager;
|
||||
|
|
@ -82,7 +81,6 @@ use OCP\Config\BeforePreferenceDeletedEvent;
|
|||
use OCP\Config\BeforePreferenceSetEvent;
|
||||
use OCP\Contacts\IManager as IContactsManager;
|
||||
use OCP\DB\Events\AddMissingIndicesEvent;
|
||||
use OCP\EventDispatcher\IEventDispatcher;
|
||||
use OCP\Federation\Events\TrustedServerRemovedEvent;
|
||||
use OCP\Files\AppData\IAppDataFactory;
|
||||
use OCP\IUserSession;
|
||||
|
|
@ -205,6 +203,7 @@ class Application extends App implements IBootstrap {
|
|||
$context->registerEventListener(UserDeletedEvent::class, UserEventsListener::class);
|
||||
$context->registerEventListener(UserCreatedEvent::class, UserEventsListener::class);
|
||||
$context->registerEventListener(UserChangedEvent::class, UserEventsListener::class);
|
||||
$context->registerEventListener(UserUpdatedEvent::class, UserEventsListener::class);
|
||||
|
||||
$context->registerNotifierService(Notifier::class);
|
||||
|
||||
|
|
@ -228,37 +227,11 @@ class Application extends App implements IBootstrap {
|
|||
// Load all dav apps
|
||||
\OC_App::loadApps(['dav']);
|
||||
|
||||
$context->injectFn($this->registerHooks(...));
|
||||
$context->injectFn($this->registerContactsManager(...));
|
||||
$context->injectFn($this->registerCalendarManager(...));
|
||||
$context->injectFn($this->registerCalendarReminders(...));
|
||||
}
|
||||
|
||||
public function registerHooks(
|
||||
IEventDispatcher $dispatcher,
|
||||
IAppContainer $container,
|
||||
): void {
|
||||
$dispatcher->addListener(UserUpdatedEvent::class, function (UserUpdatedEvent $event) use ($container): void {
|
||||
/** @var SyncService $syncService */
|
||||
$syncService = Server::get(SyncService::class);
|
||||
$syncService->updateUser($event->getUser());
|
||||
});
|
||||
|
||||
|
||||
$dispatcher->addListener(CalendarShareUpdatedEvent::class, function (CalendarShareUpdatedEvent $event) use ($container): void {
|
||||
/** @var Backend $backend */
|
||||
$backend = $container->query(Backend::class);
|
||||
$backend->onCalendarUpdateShares(
|
||||
$event->getCalendarData(),
|
||||
$event->getOldShares(),
|
||||
$event->getAdded(),
|
||||
$event->getRemoved()
|
||||
);
|
||||
|
||||
// Here we should recalculate if reminders should be sent to new or old sharees
|
||||
});
|
||||
}
|
||||
|
||||
public function registerContactsManager(IContactsManager $cm, IAppContainer $container): void {
|
||||
$cm->register(function () use ($container, $cm): void {
|
||||
$user = Server::get(IUserSession::class)->getUser();
|
||||
|
|
|
|||
|
|
@ -39,5 +39,7 @@ class CalendarShareUpdateListener implements IEventListener {
|
|||
$event->getAdded(),
|
||||
$event->getRemoved()
|
||||
);
|
||||
|
||||
// Here we should recalculate if reminders should be sent to new or old sharees
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ use OCA\DAV\CalDAV\CalDavBackend;
|
|||
use OCA\DAV\CardDAV\CardDavBackend;
|
||||
use OCA\DAV\CardDAV\SyncService;
|
||||
use OCA\DAV\Service\DefaultContactService;
|
||||
use OCP\Accounts\UserUpdatedEvent;
|
||||
use OCP\Defaults;
|
||||
use OCP\EventDispatcher\Event;
|
||||
use OCP\EventDispatcher\IEventListener;
|
||||
|
|
@ -29,7 +30,7 @@ use OCP\User\Events\UserIdAssignedEvent;
|
|||
use OCP\User\Events\UserIdUnassignedEvent;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
/** @template-implements IEventListener<UserFirstTimeLoggedInEvent|UserIdAssignedEvent|BeforeUserIdUnassignedEvent|UserIdUnassignedEvent|BeforeUserDeletedEvent|UserDeletedEvent|UserCreatedEvent|UserChangedEvent> */
|
||||
/** @template-implements IEventListener<UserFirstTimeLoggedInEvent|UserIdAssignedEvent|BeforeUserIdUnassignedEvent|UserIdUnassignedEvent|BeforeUserDeletedEvent|UserDeletedEvent|UserCreatedEvent|UserChangedEvent|UserUpdatedEvent> */
|
||||
class UserEventsListener implements IEventListener {
|
||||
|
||||
/** @var IUser[] */
|
||||
|
|
@ -69,6 +70,8 @@ class UserEventsListener implements IEventListener {
|
|||
$this->changeUser($event->getUser(), $event->getFeature());
|
||||
} elseif ($event instanceof UserFirstTimeLoggedInEvent) {
|
||||
$this->firstLogin($event->getUser());
|
||||
} elseif ($event instanceof UserUpdatedEvent) {
|
||||
$this->updateUser($event->getUser());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -76,6 +79,10 @@ class UserEventsListener implements IEventListener {
|
|||
$this->syncService->updateUser($user);
|
||||
}
|
||||
|
||||
public function updateUser(IUser $user): void {
|
||||
$this->syncService->updateUser($user);
|
||||
}
|
||||
|
||||
public function preDeleteUser(IUser $user): void {
|
||||
$uid = $user->getUID();
|
||||
$userPrincipalUri = 'principals/users/' . $uid;
|
||||
|
|
|
|||
Loading…
Reference in a new issue