X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/a6633642232efd164d4708967ab59e498fbff896..refs/pull/3139/head:/app/Actions/Activity.php diff --git a/app/Actions/Activity.php b/app/Actions/Activity.php index 9d256c9b2..3b1408cb9 100644 --- a/app/Actions/Activity.php +++ b/app/Actions/Activity.php @@ -6,28 +6,29 @@ use BookStack\Auth\User; use BookStack\Entities\Models\Entity; use BookStack\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; +use Illuminate\Database\Eloquent\Relations\MorphTo; use Illuminate\Support\Str; /** * @property string $type - * @property User $user + * @property User $user * @property Entity $entity * @property string $detail * @property string $entity_type - * @property int $entity_id - * @property int $user_id + * @property int $entity_id + * @property int $user_id */ class Activity extends Model { - /** * Get the entity for this activity. */ - public function entity() + public function entity(): MorphTo { if ($this->entity_type === '') { $this->entity_type = null; } + return $this->morphTo('entity'); } @@ -53,14 +54,14 @@ class Activity extends Model public function isForEntity(): bool { return Str::startsWith($this->type, [ - 'page_', 'chapter_', 'book_', 'bookshelf_' + 'page_', 'chapter_', 'book_', 'bookshelf_', ]); } /** * Checks if another Activity matches the general information of another. */ - public function isSimilarTo(Activity $activityB): bool + public function isSimilarTo(self $activityB): bool { return [$this->type, $this->entity_type, $this->entity_id] === [$activityB->type, $activityB->entity_type, $activityB->entity_id]; }