Fixes FS#27687.

Signed-off-by: Marcel Korpel <[email protected]>
---
 web/lib/pkgbasefuncs.inc.php | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/web/lib/pkgbasefuncs.inc.php b/web/lib/pkgbasefuncs.inc.php
index c8c99eb..e255cb4 100644
--- a/web/lib/pkgbasefuncs.inc.php
+++ b/web/lib/pkgbasefuncs.inc.php
@@ -508,6 +508,24 @@ function pkgbase_delete ($base_ids, $merge_base_id, $via, 
$grant=false) {
                $q.= "WHERE PackageBaseID IN (" . implode(",", $base_ids) . ")";
                $dbh->exec($q);
 
+               /* Merge comment notifications */
+               $q = "SELECT UserID FROM CommentNotify ";
+               $q.= "WHERE PackageBaseID IN (" . implode(",", $base_ids) . ")";
+               $result = $dbh->query($q);
+
+               while ($uid = $result->fetchColumn(0)) {
+                       /* Check if a user already gets notifications from 
$merge_base_id */
+                       $q = "SELECT COUNT(*) FROM CommentNotify WHERE ";
+                       $q .= "UserID = $uid AND PackageBaseID = " . 
intval($merge_base_id);
+
+                       $result_notif = $dbh->query($q);
+                       if ($result_notif->fetchColumn() == 0) {
+                               $q = "INSERT INTO CommentNotify (PackageBaseID, 
UserID) VALUES (";
+                               $q.= intval($merge_base_id) . ", $uid)";
+                               $dbh->exec($q);
+                       }
+               }
+
                /* Merge votes */
                foreach ($base_ids as $base_id) {
                        $q = "UPDATE PackageVotes ";
-- 
2.4.3

Reply via email to