]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 448391: Bug->create() should make sure the reporter is logged in - Patch by FrÃ...
authorlpsolit%gmail.com <>
Wed, 30 Jul 2008 04:59:55 +0000 (04:59 +0000)
committerlpsolit%gmail.com <>
Wed, 30 Jul 2008 04:59:55 +0000 (04:59 +0000)
Bugzilla/Bug.pm

index 182b458e088578012ef28cf6e7051a8440283991..7fb47626b4921d03688ae5db8cda70643ffec1ea 100644 (file)
@@ -467,7 +467,7 @@ sub run_create_validators {
     $params->{cc} = $class->_check_cc($component, $params->{cc});
 
     # Callers cannot set Reporter, currently.
-    $params->{reporter} = Bugzilla->user->id;
+    $params->{reporter} = $class->_check_reporter();
 
     $params->{creation_ts} ||= Bugzilla->dbh->selectrow_array('SELECT NOW()');
     $params->{delta_ts} = $params->{creation_ts};
@@ -1334,6 +1334,22 @@ sub _check_rep_platform {
     return $platform;
 }
 
+sub _check_reporter {
+    my $invocant = shift;
+    my $reporter;
+    if (ref $invocant) {
+        # You cannot change the reporter of a bug.
+        $reporter = $invocant->reporter->id;
+    }
+    else {
+        # On bug creation, the reporter is the logged in user
+        # (meaning that he must be logged in first!).
+        $reporter = Bugzilla->user->id;
+        $reporter || ThrowCodeError('invalid_user');
+    }
+    return $reporter;
+}
+
 sub _check_resolution {
     my ($self, $resolution) = @_;
     $resolution = trim($resolution);