summaryrefslogtreecommitdiffstats
path: root/checksetup.pl
diff options
context:
space:
mode:
authorcyeh%bluemartini.com <>2001-02-23 03:11:22 +0100
committercyeh%bluemartini.com <>2001-02-23 03:11:22 +0100
commit4560c2324d978970871bfbe6a9480b17a915342f (patch)
treeea9c3fbfa85e250208178ab599b4bef51418f37f /checksetup.pl
parent76dd91d8df6ede4ae5f05036148d996848711c02 (diff)
downloadbugzilla-4560c2324d978970871bfbe6a9480b17a915342f.tar.gz
bugzilla-4560c2324d978970871bfbe6a9480b17a915342f.tar.xz
fix for 66876: Using userids (mediumint) for initialowner and initialqacontact
based on patch submitted by baulig@suse.de (Martin Baulig).
Diffstat (limited to 'checksetup.pl')
-rwxr-xr-xchecksetup.pl64
1 files changed, 62 insertions, 2 deletions
diff --git a/checksetup.pl b/checksetup.pl
index 8b8054081..11993e525 100755
--- a/checksetup.pl
+++ b/checksetup.pl
@@ -755,8 +755,8 @@ $table{longdescs} =
$table{components} =
'value tinytext,
program varchar(64),
- initialowner tinytext not null, # Should arguably be a mediumint!
- initialqacontact tinytext not null, # Should arguably be a mediumint!
+ initialowner mediumint not null,
+ initialqacontact mediumint not null,
description mediumtext not null';
@@ -1824,6 +1824,66 @@ my @resolutions = ("", "FIXED", "INVALID", "WONTFIX", "LATER", "REMIND",
"DUPLICATE", "WORKSFORME", "MOVED");
CheckEnumField('bugs', 'resolution', @resolutions);
+if (($_ = GetFieldDef('components', 'initialowner')) and ($_->[1] eq 'tinytext')) {
+ $sth = $dbh->prepare("SELECT program, value, initialowner, initialqacontact FROM components");
+ $sth->execute();
+ while (my ($program, $value, $initialowner) = $sth->fetchrow_array()) {
+ $initialowner =~ s/([\\\'])/\\$1/g; $initialowner =~ s/\0/\\0/g;
+ $program =~ s/([\\\'])/\\$1/g; $program =~ s/\0/\\0/g;
+ $value =~ s/([\\\'])/\\$1/g; $value =~ s/\0/\\0/g;
+
+ my $s2 = $dbh->prepare("SELECT userid FROM profiles WHERE login_name = '$initialowner'");
+ $s2->execute();
+
+ my $initialownerid = $s2->fetchrow_array();
+
+ unless (defined $initialownerid) {
+ print "Warning: You have an invalid initial owner '$initialowner' in program '$program', component '$value'!\n";
+ $initialownerid = 0;
+ }
+
+ my $update = "UPDATE components SET initialowner = $initialownerid ".
+ "WHERE program = '$program' AND value = '$value'";
+ my $s3 = $dbh->prepare("UPDATE components SET initialowner = $initialownerid ".
+ "WHERE program = '$program' AND value = '$value';");
+ $s3->execute();
+ }
+
+ ChangeFieldType('components','initialowner','mediumint');
+}
+
+if (($_ = GetFieldDef('components', 'initialqacontact')) and ($_->[1] eq 'tinytext')) {
+ $sth = $dbh->prepare("SELECT program, value, initialqacontact, initialqacontact FROM components");
+ $sth->execute();
+ while (my ($program, $value, $initialqacontact) = $sth->fetchrow_array()) {
+ $initialqacontact =~ s/([\\\'])/\\$1/g; $initialqacontact =~ s/\0/\\0/g;
+ $program =~ s/([\\\'])/\\$1/g; $program =~ s/\0/\\0/g;
+ $value =~ s/([\\\'])/\\$1/g; $value =~ s/\0/\\0/g;
+
+ my $s2 = $dbh->prepare("SELECT userid FROM profiles WHERE login_name = '$initialqacontact'");
+ $s2->execute();
+
+ my $initialqacontactid = $s2->fetchrow_array();
+
+ unless (defined $initialqacontactid) {
+ if ($initialqacontact ne '') {
+ print "Warning: You have an invalid initial QA contact '$initialqacontact' in program '$program', component '$value'!\n";
+ }
+ $initialqacontactid = 0;
+ }
+
+ my $update = "UPDATE components SET initialqacontact = $initialqacontactid ".
+ "WHERE program = '$program' AND value = '$value'";
+ my $s3 = $dbh->prepare("UPDATE components SET initialqacontact = $initialqacontactid ".
+ "WHERE program = '$program' AND value = '$value';");
+ $s3->execute();
+ }
+
+ ChangeFieldType('components','initialqacontact','mediumint');
+}
+
+
+
my @states = ("UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED", "RESOLVED",
"VERIFIED", "CLOSED");
CheckEnumField('bugs', 'bug_status', @states);