diff options
Diffstat (limited to 'apps/dav/lib/CardDAV/Activity/Backend.php')
-rw-r--r-- | apps/dav/lib/CardDAV/Activity/Backend.php | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/apps/dav/lib/CardDAV/Activity/Backend.php b/apps/dav/lib/CardDAV/Activity/Backend.php index 184b3f0cb10..8c8c643e287 100644 --- a/apps/dav/lib/CardDAV/Activity/Backend.php +++ b/apps/dav/lib/CardDAV/Activity/Backend.php @@ -32,6 +32,7 @@ use OCP\App\IAppManager; use OCP\IGroup; use OCP\IGroupManager; use OCP\IUser; +use OCP\IUserManager; use OCP\IUserSession; use Sabre\CardDAV\Plugin; use Sabre\VObject\Reader; @@ -50,14 +51,19 @@ class Backend { /** @var IAppManager */ protected $appManager; + /** @var IUserManager */ + protected $userManager; + public function __construct(IActivityManager $activityManager, IGroupManager $groupManager, IUserSession $userSession, - IAppManager $appManager) { + IAppManager $appManager, + IUserManager $userManager) { $this->activityManager = $activityManager; $this->groupManager = $groupManager; $this->userSession = $userSession; $this->appManager = $appManager; + $this->userManager = $userManager; } /** @@ -139,6 +145,11 @@ class Backend { } foreach ($users as $user) { + if ($action === Addressbook::SUBJECT_DELETE && !$this->userManager->userExists($user)) { + // Avoid creating addressbook_delete activities for deleted users + continue; + } + $event->setAffectedUser($user) ->setSubject( $user === $currentUser ? $action . '_self' : $action, |