diff options
-rwxr-xr-x | Bugzilla/Bug.pm | 17 | ||||
-rw-r--r-- | CGI.pl | 19 |
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; @@ -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 }); |