Merge pull request #7925 from annando/issue-7613

Issue 7613: When an item is deleted, delete all notifications for it
This commit is contained in:
Tobias Diekershoff 2019-12-10 07:51:50 +01:00 committed by GitHub
commit 7cec9a9dd1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1083,6 +1083,9 @@ class Item extends BaseObject
// "Deleting" global items just means hiding them
if ($item['uid'] == 0) {
DBA::update('user-item', ['hidden' => true], ['iid' => $item['id'], 'uid' => $uid], true);
// Delete notifications
DBA::delete('notify', ['iid' => $item['id'], 'uid' => $uid]);
} elseif ($item['uid'] == $uid) {
self::deleteById($item['id'], PRIORITY_HIGH);
} else {
@ -1173,6 +1176,9 @@ class Item extends BaseObject
// Delete tags that had been attached to other items
self::deleteTagsFromItem($item);
// Delete notifications
DBA::delete('notify', ['iid' => $item['id'], 'uid' => $item['uid']]);
// Set the item to "deleted"
$item_fields = ['deleted' => true, 'edited' => DateTimeFormat::utcNow(), 'changed' => DateTimeFormat::utcNow()];
DBA::update('item', $item_fields, ['id' => $item['id']]);