From 8d9074a59f0bfa4b79256e5524a447397e3490de Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Wed, 8 Aug 2007 18:07:35 +0000 Subject: Bug 376061: Changing the requestee of a flag should not change the requester if the one doing the change is the requestee himself - Patch by Frédéric Buclin r=myk a=LpSolit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bugzilla/Flag.pm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'Bugzilla') diff --git a/Bugzilla/Flag.pm b/Bugzilla/Flag.pm index 19ecf7fa9..a6914a661 100644 --- a/Bugzilla/Flag.pm +++ b/Bugzilla/Flag.pm @@ -763,6 +763,14 @@ sub modify { notify($flag, $bug, $attachment); } elsif ($status eq '?') { + # If the one doing the change is the requestee, then this means he doesn't + # want to reply to the request and he simply reassigns the request to + # someone else. In this case, we keep the requester unaltered. + my $new_setter = $setter; + if ($flag->requestee && $flag->requestee->id == $setter->id) { + $new_setter = $flag->setter; + } + # Get the requestee, if any. my $requestee_id; if ($requestee_email) { @@ -782,11 +790,11 @@ sub modify { SET setter_id = ?, requestee_id = ?, status = ?, modification_date = ? WHERE id = ?', - undef, ($setter->id, $requestee_id, $status, + undef, ($new_setter->id, $requestee_id, $status, $timestamp, $flag->id)); # Now update the flag object with its new values. - $flag->{'setter'} = $setter; + $flag->{'setter'} = $new_setter; $flag->{'status'} = $status; # Send an email notifying the relevant parties about the request. -- cgit v1.2.3-24-g4f1b