]> source.dussan.org Git - nextcloud-server.git/commitdiff
fix(userstatus): run user status automation job for start and end events 47201/head
authorAnna Larch <anna@nextcloud.com>
Tue, 13 Aug 2024 14:27:51 +0000 (16:27 +0200)
committerRichard Steinmetz <richard@steinmetz.cloud>
Wed, 14 Aug 2024 07:44:26 +0000 (09:44 +0200)
Signed-off-by: Anna Larch <anna@nextcloud.com>
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
apps/user_status/lib/AppInfo/Application.php
apps/user_status/lib/Listener/OutOfOfficeStatusListener.php

index 31b7342e40b28e90b97f6491dc2d0c9121eede0d..5199c3fdbf0a367948002752622ec9a0e31518cd 100644 (file)
@@ -23,7 +23,9 @@ use OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent;
 use OCP\IConfig;
 use OCP\User\Events\OutOfOfficeChangedEvent;
 use OCP\User\Events\OutOfOfficeClearedEvent;
+use OCP\User\Events\OutOfOfficeEndedEvent;
 use OCP\User\Events\OutOfOfficeScheduledEvent;
+use OCP\User\Events\OutOfOfficeStartedEvent;
 use OCP\User\Events\UserDeletedEvent;
 use OCP\User\Events\UserLiveStatusEvent;
 use OCP\UserStatus\IManager;
@@ -61,6 +63,8 @@ class Application extends App implements IBootstrap {
                $context->registerEventListener(OutOfOfficeChangedEvent::class, OutOfOfficeStatusListener::class);
                $context->registerEventListener(OutOfOfficeScheduledEvent::class, OutOfOfficeStatusListener::class);
                $context->registerEventListener(OutOfOfficeClearedEvent::class, OutOfOfficeStatusListener::class);
+               $context->registerEventListener(OutOfOfficeStartedEvent::class, OutOfOfficeStatusListener::class);
+               $context->registerEventListener(OutOfOfficeEndedEvent::class, OutOfOfficeStatusListener::class);
 
                $config = $this->getContainer()->query(IConfig::class);
                $shareeEnumeration = $config->getAppValue('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes') === 'yes';
index 7b1a91ead8c1ba13e72ed187d5bc5a26b2eefa0e..7fe08e9719b592f977daf1a3353f3693649dc62b 100644 (file)
@@ -15,14 +15,16 @@ use OCP\EventDispatcher\Event;
 use OCP\EventDispatcher\IEventListener;
 use OCP\User\Events\OutOfOfficeChangedEvent;
 use OCP\User\Events\OutOfOfficeClearedEvent;
+use OCP\User\Events\OutOfOfficeEndedEvent;
 use OCP\User\Events\OutOfOfficeScheduledEvent;
+use OCP\User\Events\OutOfOfficeStartedEvent;
 use OCP\UserStatus\IManager;
 use OCP\UserStatus\IUserStatus;
 
 /**
  * Class UserDeletedListener
  *
- * @template-implements IEventListener<OutOfOfficeScheduledEvent|OutOfOfficeChangedEvent|OutOfOfficeClearedEvent>
+ * @template-implements IEventListener<OutOfOfficeScheduledEvent|OutOfOfficeChangedEvent|OutOfOfficeClearedEvent|OutOfOfficeStartedEvent|OutOfOfficeEndedEvent>
  *
  */
 class OutOfOfficeStatusListener implements IEventListener {
@@ -42,7 +44,10 @@ class OutOfOfficeStatusListener implements IEventListener {
                }
 
                if ($event instanceof OutOfOfficeScheduledEvent
-                       || $event instanceof OutOfOfficeChangedEvent) {
+                       || $event instanceof OutOfOfficeChangedEvent
+                       || $event instanceof OutOfOfficeStartedEvent
+                       || $event instanceof OutOfOfficeEndedEvent
+               ) {
                        // This might be overwritten by the office hours automation, but that is ok. This is just in case no office hours are set
                        $this->jobsList->scheduleAfter(UserStatusAutomation::class, $this->time->getTime(), ['userId' => $event->getData()->getUser()->getUID()]);
                }