summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xBugzilla/Bug.pm17
-rw-r--r--CGI.pl19
2 files changed, 18 insertions, 18 deletions
diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm
index b9229d98e..501f707b0 100755
--- a/Bugzilla/Bug.pm
+++ b/Bugzilla/Bug.pm
@@ -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 652d6c03b..8d42eb4cc 100644
--- 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 });