]> BookStack Code Mirror - bookstack/blobdiff - app/Activity/Notifications/Handlers/BaseNotificationHandler.php
ExportFormatter: Add book description and check for empty book and chapter descriptio...
[bookstack] / app / Activity / Notifications / Handlers / BaseNotificationHandler.php
index e0b3f3ceba338d1ce82f8e21f289f5afe934e1ac..b5f339b2ce0ba3f98f680df4339fc56910476d79 100644 (file)
@@ -2,6 +2,7 @@
 
 namespace BookStack\Activity\Notifications\Handlers;
 
+use BookStack\Activity\Models\Loggable;
 use BookStack\Activity\Notifications\Messages\BaseActivityNotification;
 use BookStack\Entities\Models\Entity;
 use BookStack\Permissions\PermissionApplicator;
@@ -9,16 +10,11 @@ use BookStack\Users\Models\User;
 
 abstract class BaseNotificationHandler implements NotificationHandler
 {
-    public function __construct(
-        protected PermissionApplicator $permissionApplicator
-    ) {
-    }
-
     /**
      * @param class-string<BaseActivityNotification> $notification
      * @param int[] $userIds
      */
-    protected function sendNotificationToUserIds(string $notification, array $userIds, User $initiator, Entity $relatedModel): void
+    protected function sendNotificationToUserIds(string $notification, array $userIds, User $initiator, string|Loggable $detail, Entity $relatedModel): void
     {
         $users = User::query()->whereIn('id', array_unique($userIds))->get();
 
@@ -34,12 +30,13 @@ abstract class BaseNotificationHandler implements NotificationHandler
             }
 
             // Prevent sending if the user does not have access to the related content
-            if (!$this->permissionApplicator->checkOwnableUserAccess($relatedModel, 'view')) {
+            $permissions = new PermissionApplicator($user);
+            if (!$permissions->checkOwnableUserAccess($relatedModel, 'view')) {
                 continue;
             }
 
             // Send the notification
-            $user->notify(new $notification($relatedModel, $initiator));
+            $user->notify(new $notification($detail, $initiator));
         }
     }
 }