]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 283919: Move BugAliasToID out of CGI.pl into Bugzilla::Bug
authormkanat%kerio.com <>
Wed, 9 Mar 2005 07:03:57 +0000 (07:03 +0000)
committermkanat%kerio.com <>
Wed, 9 Mar 2005 07:03:57 +0000 (07:03 +0000)
Patch By Max Kanat-Alexander <mkanat@kerio.com> r=LpSolit, a=myk

Bugzilla/Bug.pm
CGI.pl

index b9229d98e7f5af8f023a5a491c9806ed51836d05..501f707b091292fd9566658ea5dc23460aaec59f 100755 (executable)
@@ -46,6 +46,7 @@ use Bugzilla::Error;
 
 use base qw(Exporter);
 @Bugzilla::Bug::EXPORT = qw(
+    bug_alias_to_id
     ValidateComment
 );
 
@@ -123,7 +124,7 @@ sub initBug  {
   my $old_bug_id = $bug_id;
 
   # If the bug ID isn't numeric, it might be an alias, so try to convert it.
-  $bug_id = &::BugAliasToID($bug_id) if $bug_id !~ /^0*[1-9][0-9]*$/;
+  $bug_id = bug_alias_to_id($bug_id) if $bug_id !~ /^0*[1-9][0-9]*$/;
 
   if ((! defined $bug_id) || (!$bug_id) || (!detaint_natural($bug_id))) {
       # no bug number given or the alias didn't match a bug
@@ -496,6 +497,20 @@ sub choices {
     return $self->{'choices'};
 }
 
+# Convenience Function. If you need speed, use this. If you need
+# other Bug fields in addition to this, just create a new Bug with
+# the alias.
+# Queries the database for the bug with a given alias, and returns
+# the ID of the bug if it exists or the undefined value if it doesn't.
+sub bug_alias_to_id ($) {
+    my ($alias) = @_;
+    return undef unless Param("usebugaliases");
+    my $dbh = Bugzilla->dbh;
+    trick_taint($alias);
+    return $dbh->selectrow_array(
+        "SELECT bug_id FROM bugs WHERE alias = ?", undef, $alias);
+}
+
 sub EmitDependList {
     my ($myfield, $targetfield, $bug_id) = (@_);
     my $dbh = Bugzilla->dbh;
diff --git a/CGI.pl b/CGI.pl
index 652d6c03b478cc07be9f940edb43851386a83e21..8d42eb4cc8d3650862507b07c944e17012ab5757 100644 (file)
--- a/CGI.pl
+++ b/CGI.pl
@@ -45,6 +45,7 @@ use Bugzilla::Config;
 use Bugzilla::Constants;
 use Bugzilla::Error;
 use Bugzilla::BugMail;
+use Bugzilla::Bug;
 
 # Shut up misguided -w warnings about "used only once".  For some reason,
 # "use vars" chokes on me when I try it here.
@@ -127,22 +128,6 @@ sub CheckFormFieldDefined (\%$) {
     }
 }
 
-sub BugAliasToID {
-    # Queries the database for the bug with a given alias, and returns
-    # the ID of the bug if it exists or the undefined value if it doesn't.
-    
-    my ($alias) = @_;
-    
-    return undef unless Param("usebugaliases");
-    
-    PushGlobalSQLState();
-    SendSQL("SELECT bug_id FROM bugs WHERE alias = " . SqlQuote($alias));
-    my $id = FetchOneColumn();
-    PopGlobalSQLState();
-    
-    return $id;
-}
-
 sub ValidateBugID {
     # Validates and verifies a bug ID, making sure the number is a 
     # positive integer, that it represents an existing bug in the
@@ -157,7 +142,7 @@ sub ValidateBugID {
     # If the ID isn't a number, it might be an alias, so try to convert it.
     my $alias = $id;
     if (!detaint_natural($id)) {
-        $id = BugAliasToID($alias);
+        $id = bug_alias_to_id($alias);
         $id || ThrowUserError("invalid_bug_id_or_alias",
                               {'bug_id' => $alias,
                                'field'  => $field });