X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/887a79f130f7994cd2b5633218ca8eadddf55af7..refs/pull/3081/head:/app/Actions/ActivityService.php diff --git a/app/Actions/ActivityService.php b/app/Actions/ActivityService.php index f8a0825bb..73dc76de0 100644 --- a/app/Actions/ActivityService.php +++ b/app/Actions/ActivityService.php @@ -4,6 +4,7 @@ namespace BookStack\Actions; use BookStack\Auth\Permissions\PermissionService; use BookStack\Auth\User; +use BookStack\Entities\Models\Book; use BookStack\Entities\Models\Chapter; use BookStack\Entities\Models\Entity; use BookStack\Entities\Models\Page; @@ -11,7 +12,6 @@ use BookStack\Interfaces\Loggable; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Relations\Relation; use Illuminate\Support\Facades\Log; -use Illuminate\Support\Facades\Request; class ActivityService { @@ -57,6 +57,7 @@ class ActivityService protected function newActivityForUser(string $type): Activity { $ip = request()->ip() ?? ''; + return $this->activity->newInstance()->forceFill([ 'type' => strtolower($type), 'user_id' => user()->id, @@ -100,14 +101,14 @@ class ActivityService */ public function entityActivity(Entity $entity, int $count = 20, int $page = 1): array { - /** @var [string => int[]] $queryIds */ + /** @var array $queryIds */ $queryIds = [$entity->getMorphClass() => [$entity->id]]; - if ($entity->isA('book')) { - $queryIds[(new Chapter())->getMorphClass()] = $entity->chapters()->visible()->pluck('id'); + if ($entity instanceof Book) { + $queryIds[(new Chapter())->getMorphClass()] = $entity->chapters()->scopes('visible')->pluck('id'); } - if ($entity->isA('book') || $entity->isA('chapter')) { - $queryIds[(new Page())->getMorphClass()] = $entity->pages()->visible()->pluck('id'); + if ($entity instanceof Book || $entity instanceof Chapter) { + $queryIds[(new Page())->getMorphClass()] = $entity->pages()->scopes('visible')->pluck('id'); } $query = $this->activity->newQuery(); @@ -132,7 +133,7 @@ class ActivityService } /** - * Get latest activity for a user, Filtering out similar items. + * Get the latest activity for a user, Filtering out similar items. */ public function userActivity(User $user, int $count = 20, int $page = 0): array {