mirror of
https://github.com/flarum/core.git
synced 2025-10-18 18:26:07 +02:00
Delete associated notifications when deleting discussions, posts, and users. fixes #1380
This commit is contained in:
@@ -21,6 +21,7 @@ use Flarum\Discussion\Event\Restored;
|
||||
use Flarum\Discussion\Event\Started;
|
||||
use Flarum\Event\GetModelIsPrivate;
|
||||
use Flarum\Foundation\EventGeneratorTrait;
|
||||
use Flarum\Notification\Notification;
|
||||
use Flarum\Post\MergeableInterface;
|
||||
use Flarum\Post\Post;
|
||||
use Flarum\User\User;
|
||||
@@ -97,8 +98,18 @@ class Discussion extends AbstractModel
|
||||
{
|
||||
parent::boot();
|
||||
|
||||
static::deleting(function (Discussion $discussion) {
|
||||
Notification::whereSubjectModel(Post::class)
|
||||
->whereIn('subject_id', function ($query) use ($discussion) {
|
||||
$query->select('id')->from('posts')->where('discussion_id', $discussion->id);
|
||||
})
|
||||
->delete();
|
||||
});
|
||||
|
||||
static::deleted(function (Discussion $discussion) {
|
||||
$discussion->raise(new Deleted($discussion));
|
||||
|
||||
Notification::whereSubject($discussion)->delete();
|
||||
});
|
||||
|
||||
static::saving(function (Discussion $discussion) {
|
||||
|
Reference in New Issue
Block a user