1
0
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:
Toby Zerner
2018-11-11 16:59:24 +10:30
parent 6d14d0c39b
commit bf8bc0222f
4 changed files with 45 additions and 0 deletions

View File

@@ -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) {