From 36331f2e6bd025fbb4c131b71223f94dbe5de724 Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Mon, 26 Sep 2005 04:04:30 +0000 Subject: Bug 308228: Whine-related saved search can be forgotten through buglist.cgi - Patch by A. Karl Kornel r=LpSolit a=justdave --- buglist.cgi | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'buglist.cgi') diff --git a/buglist.cgi b/buglist.cgi index 1e4ab0cb5..f8f81d3e5 100755 --- a/buglist.cgi +++ b/buglist.cgi @@ -388,6 +388,27 @@ if ($cgi->param('cmdtype') eq "dorem") { # the SQL, and the SQL is only a DELETE. my $qname = $cgi->param('namedcmd'); trick_taint($qname); + + # Do not forget the saved search if it is being used in a whine + my $whines_in_use = + $dbh->selectcol_arrayref('SELECT DISTINCT whine_events.subject + FROM whine_events + INNER JOIN whine_queries + ON whine_queries.eventid + = whine_events.id + WHERE whine_events.owner_userid + = ? + AND whine_queries.query_name + = ? + ', undef, Bugzilla->user->id, $qname); + if (scalar(@$whines_in_use)) { + ThrowUserError('saved_search_used_by_whines', + { subjects => join(',', @$whines_in_use), + search_name => $qname } + ); + } + + # If we are here, then we can safely remove the saved search $dbh->do("DELETE FROM namedqueries" . " WHERE userid = ? AND name = ?" , undef, ($userid, $qname)); -- cgit v1.2.3-24-g4f1b