summaryrefslogtreecommitdiffstats
path: root/Bugzilla/Bug.pm
diff options
context:
space:
mode:
authormkanat%bugzilla.org <>2006-08-22 03:53:16 +0200
committermkanat%bugzilla.org <>2006-08-22 03:53:16 +0200
commitc00ea2087a9dac0ec48de4a9bb02843d7298e2bd (patch)
treee0ad9640c85c45c624a2d1346b877feecdcbd19c /Bugzilla/Bug.pm
parentbb496330df5a3e0eaf8f40862e648ad698e6fa3b (diff)
downloadbugzilla-c00ea2087a9dac0ec48de4a9bb02843d7298e2bd.tar.gz
bugzilla-c00ea2087a9dac0ec48de4a9bb02843d7298e2bd.tar.xz
Bug 348542: Move keyword validation out of post_bug.cgi and into Bugzilla::Bug
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=bkor, a=myk
Diffstat (limited to 'Bugzilla/Bug.pm')
-rwxr-xr-xBugzilla/Bug.pm16
1 files changed, 16 insertions, 0 deletions
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