summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlpsolit%gmail.com <>2005-09-26 06:04:30 +0200
committerlpsolit%gmail.com <>2005-09-26 06:04:30 +0200
commit36331f2e6bd025fbb4c131b71223f94dbe5de724 (patch)
treeac98e98615e9da748b742c95fc05c783b34fc801
parent67cb0c3f70d5b3d98e30a9e3ce7ac3b00766f9d9 (diff)
downloadbugzilla-36331f2e6bd025fbb4c131b71223f94dbe5de724.tar.gz
bugzilla-36331f2e6bd025fbb4c131b71223f94dbe5de724.tar.xz
Bug 308228: Whine-related saved search can be forgotten through buglist.cgi - Patch by A. Karl Kornel <karl@kornel.name> r=LpSolit a=justdave
-rwxr-xr-xbuglist.cgi21
-rw-r--r--template/en/default/global/user-error.html.tmpl9
2 files changed, 29 insertions, 1 deletions
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));
diff --git a/template/en/default/global/user-error.html.tmpl b/template/en/default/global/user-error.html.tmpl
index b77e58d16..8288a309d 100644
--- a/template/en/default/global/user-error.html.tmpl
+++ b/template/en/default/global/user-error.html.tmpl
@@ -1055,6 +1055,12 @@
[% title = "Summary Needed" %]
You must enter a summary for this [% terms.bug %].
+ [% ELSIF error == "saved_search_used_by_whines" %]
+ [% title = "Saved Search In Use" %]
+ The saved search <em>[% search_name FILTER html %]</em> is being used
+ by <a href="editwhines.cgi">Whining events</a> with the following subjects:
+ [%+ subjects FILTER html %]
+
[% ELSIF error == "search_content_without_matches" %]
[% title = "Illegal Search" %]
The "content" field can only be used with "matches" search
@@ -1238,7 +1244,8 @@
[% USE Bugzilla %]
[% namedcmd = Bugzilla.cgi.param("namedcmd") %]
-[% IF namedcmd AND error != "missing_query" %]
+[% IF namedcmd AND error != "missing_query"
+ AND error != "saved_search_used_by_whines" %]
<p>
Alternatively, you can
<a href="buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=