X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/fef433a9cb1ae8c0daf2444e16e590cd9df114aa..refs/pull/5280/head:/app/Activity/Models/Comment.php diff --git a/app/Activity/Models/Comment.php b/app/Activity/Models/Comment.php index bcbed6c56..7d1c54646 100644 --- a/app/Activity/Models/Comment.php +++ b/app/Activity/Models/Comment.php @@ -4,25 +4,28 @@ namespace BookStack\Activity\Models; use BookStack\App\Model; use BookStack\Users\Models\HasCreatorAndUpdater; +use BookStack\Util\HtmlContentFilter; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\MorphTo; /** * @property int $id - * @property string $text + * @property string $text - Deprecated & now unused (#4821) * @property string $html - * @property int|null $parent_id + * @property int|null $parent_id - Relates to local_id, not id * @property int $local_id * @property string $entity_type * @property int $entity_id + * @property int $created_by + * @property int $updated_by */ class Comment extends Model implements Loggable { use HasFactory; use HasCreatorAndUpdater; - protected $fillable = ['text', 'parent_id']; + protected $fillable = ['parent_id']; protected $appends = ['created', 'updated']; /** @@ -38,7 +41,9 @@ class Comment extends Model implements Loggable */ public function parent(): BelongsTo { - return $this->belongsTo(Comment::class); + return $this->belongsTo(Comment::class, 'parent_id', 'local_id', 'parent') + ->where('entity_type', '=', $this->entity_type) + ->where('entity_id', '=', $this->entity_id); } /** @@ -69,4 +74,9 @@ class Comment extends Model implements Loggable { return "Comment #{$this->local_id} (ID: {$this->id}) for {$this->entity_type} (ID: {$this->entity_id})"; } + + public function safeHtml(): string + { + return HtmlContentFilter::removeScriptsFromHtmlString($this->html ?? ''); + } }