From c00ea2087a9dac0ec48de4a9bb02843d7298e2bd Mon Sep 17 00:00:00 2001 From: "mkanat%bugzilla.org" <> Date: Tue, 22 Aug 2006 01:53:16 +0000 Subject: Bug 348542: Move keyword validation out of post_bug.cgi and into Bugzilla::Bug Patch By Max Kanat-Alexander r=bkor, a=myk --- Bugzilla/Bug.pm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'Bugzilla/Bug.pm') diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm index 343f49e18..9c9e2828d 100755 --- a/Bugzilla/Bug.pm +++ b/Bugzilla/Bug.pm @@ -35,6 +35,7 @@ use Bugzilla::Constants; use Bugzilla::Field; use Bugzilla::Flag; use Bugzilla::FlagType; +use Bugzilla::Keyword; use Bugzilla::User; use Bugzilla::Util; use Bugzilla::Error; @@ -333,6 +334,21 @@ sub _check_component { return $obj; } +sub _check_keywords { + my ($keyword_string) = @_; + $keyword_string = trim($keyword_string); + return [] if (!$keyword_string || !Bugzilla->user->in_group('editbugs')); + + my %keyword_ids; + foreach my $keyword (split(/[\s,]+/, $keyword_string)) { + next unless $keyword; + my $obj = new Bugzilla::Keyword({ name => $keyword }); + ThrowUserError("unknown_keyword", { keyword => $keyword }) if !$obj; + $keyword_ids{$obj->id} = 1; + } + return [keys %keyword_ids]; +} + sub _check_product { my ($name) = @_; # Check that the product exists and that the user -- cgit v1.2.3-24-g4f1b