Fixed very very nasty bug which, when deleting a component, would tell

you it had no bugs (even when it had some), and would then proceed to
delete all those bugs (even if you had the param set to never allow
bug deletion.)  Added some paranoia to prevent such things from
happening again.  Yikes.
This commit is contained in:
terry%mozilla.org 1999-12-17 03:41:13 +00:00
Родитель 251b1f466b
Коммит 198d0d7862
3 изменённых файлов: 51 добавлений и 36 удалений

Просмотреть файл

@ -481,10 +481,9 @@ if ($action eq 'del') {
print " <TD VALIGN=\"top\">Initial QA contact:</TD>\n";
print " <TD VALIGN=\"top\">$initialqacontact</TD>";
}
SendSQL("SELECT count(bug_id),product,component
SendSQL("SELECT count(bug_id)
FROM bugs
GROUP BY product
HAVING product=" . SqlQuote($product) . "
WHERE product=" . SqlQuote($product) . "
AND component=" . SqlQuote($component));
print "</TR><TR>\n";
@ -568,29 +567,34 @@ if ($action eq 'delete') {
# so I have to iterate over bugs and delete all the indivial entries
# in bugs_activies and attachments.
SendSQL("SELECT bug_id
if (Param("allowbugdeletion")) {
SendSQL("SELECT bug_id
FROM bugs
WHERE product=" . SqlQuote($product) . "
AND component=" . SqlQuote($component));
while (MoreSQLData()) {
my $bugid = FetchOneColumn();
while (MoreSQLData()) {
my $bugid = FetchOneColumn();
my $query = $::db->query("DELETE FROM attachments WHERE bug_id=$bugid")
my $query =
$::db->query("DELETE FROM attachments WHERE bug_id=$bugid")
or die "$::db_errstr";
$query = $::db->query("DELETE FROM bugs_activity WHERE bug_id=$bugid")
$query =
$::db->query("DELETE FROM bugs_activity WHERE bug_id=$bugid")
or die "$::db_errstr";
$query = $::db->query("DELETE FROM dependencies WHERE blocked=$bugid")
$query =
$::db->query("DELETE FROM dependencies WHERE blocked=$bugid")
or die "$::db_errstr";
}
print "Attachments, bug activity and dependencies deleted.<BR>\n";
}
print "Attachments, bug activity and dependencies deleted.<BR>\n";
# Deleting the rest is easier:
# Deleting the rest is easier:
SendSQL("DELETE FROM bugs
SendSQL("DELETE FROM bugs
WHERE product=" . SqlQuote($product) . "
AND component=" . SqlQuote($component));
print "Bugs deleted.<BR>\n";
print "Bugs deleted.<BR>\n";
}
SendSQL("DELETE FROM components
WHERE program=" . SqlQuote($product) . "

Просмотреть файл

@ -443,27 +443,32 @@ if ($action eq 'delete') {
# so I have to iterate over bugs and delete all the indivial entries
# in bugs_activies and attachments.
SendSQL("SELECT bug_id
if (Param("allowbugdeletion")) {
SendSQL("SELECT bug_id
FROM bugs
WHERE product=" . SqlQuote($product));
while (MoreSQLData()) {
my $bugid = FetchOneColumn();
while (MoreSQLData()) {
my $bugid = FetchOneColumn();
my $query = $::db->query("DELETE FROM attachments WHERE bug_id=$bugid")
my $query =
$::db->query("DELETE FROM attachments WHERE bug_id=$bugid")
or die "$::db_errstr";
$query = $::db->query("DELETE FROM bugs_activity WHERE bug_id=$bugid")
$query =
$::db->query("DELETE FROM bugs_activity WHERE bug_id=$bugid")
or die "$::db_errstr";
$query = $::db->query("DELETE FROM dependencies WHERE blocked=$bugid")
$query =
$::db->query("DELETE FROM dependencies WHERE blocked=$bugid")
or die "$::db_errstr";
}
print "Attachments, bug activity and dependencies deleted.<BR>\n";
}
print "Attachments, bug activity and dependencies deleted.<BR>\n";
# Deleting the rest is easier:
# Deleting the rest is easier:
SendSQL("DELETE FROM bugs
SendSQL("DELETE FROM bugs
WHERE product=" . SqlQuote($product));
print "Bugs deleted.<BR>\n";
print "Bugs deleted.<BR>\n";
}
SendSQL("DELETE FROM components
WHERE program=" . SqlQuote($product));

Просмотреть файл

@ -427,29 +427,35 @@ if ($action eq 'delete') {
# so I have to iterate over bugs and delete all the indivial entries
# in bugs_activies and attachments.
SendSQL("SELECT bug_id
if (Param("allowbugdeletion")) {
SendSQL("SELECT bug_id
FROM bugs
WHERE product=" . SqlQuote($product) . "
AND version=" . SqlQuote($version));
while (MoreSQLData()) {
my $bugid = FetchOneColumn();
while (MoreSQLData()) {
my $bugid = FetchOneColumn();
my $query = $::db->query("DELETE FROM attachments WHERE bug_id=$bugid")
my $query =
$::db->query("DELETE FROM attachments WHERE bug_id=$bugid")
or die "$::db_errstr";
$query = $::db->query("DELETE FROM bugs_activity WHERE bug_id=$bugid")
$query =
$::db->query("DELETE FROM bugs_activity WHERE bug_id=$bugid")
or die "$::db_errstr";
$query = $::db->query("DELETE FROM dependencies WHERE blocked=$bugid")
$query =
$::db->query("DELETE FROM dependencies WHERE blocked=$bugid")
or die "$::db_errstr";
}
print "Attachments, bug activity and dependencies deleted.<BR>\n";
}
print "Attachments, bug activity and dependencies deleted.<BR>\n";
# Deleting the rest is easier:
# Deleting the rest is easier:
SendSQL("DELETE FROM bugs
SendSQL("DELETE FROM bugs
WHERE product=" . SqlQuote($product) . "
AND version=" . SqlQuote($version));
print "Bugs deleted.<BR>\n";
print "Bugs deleted.<BR>\n";
}
SendSQL("DELETE FROM versions
WHERE program=" . SqlQuote($product) . "