From 569e25c31647d6eedb0c2481c0d69b73c1af091b Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Wed, 30 Jul 2008 04:57:43 +0000 Subject: Bug 448391: Bug->create() should make sure the reporter is logged in - Patch by Frédéric Buclin r/a=mkanat MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bugzilla/Bug.pm | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'Bugzilla') diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm index bade02f68..ff0f2089f 100644 --- a/Bugzilla/Bug.pm +++ b/Bugzilla/Bug.pm @@ -476,7 +476,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}; @@ -1358,6 +1358,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); -- cgit v1.2.3-24-g4f1b