From: lpsolit%gmail.com <> Date: Thu, 6 Aug 2009 02:18:49 +0000 (+0000) Subject: Bug 305993: The requestee field may be omitted even when a requestee is already set... X-Git-Tag: bugzilla-3.5.1~133 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8dc4b874a314a9ff4b32d3223fe481ef32a6a475;p=thirdparty%2Fbugzilla.git Bug 305993: The requestee field may be omitted even when a requestee is already set - Patch by Frédéric Buclin a=LpSolit --- diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm index 64627f4e91..567c130f4a 100644 --- a/Bugzilla/Bug.pm +++ b/Bugzilla/Bug.pm @@ -2519,8 +2519,12 @@ sub any_flags_requesteeble { if exists $self->{'any_flags_requesteeble'}; return 0 if $self->{'error'}; - $self->{'any_flags_requesteeble'} = - grep($_->{'is_requesteeble'}, @{$self->flag_types}); + my $any_flags_requesteeble = + grep { $_->is_requestable && $_->is_requesteeble } @{$self->flag_types}; + # Useful in case a flagtype is no longer requestable but a requestee + # has been set before we turned off that bit. + $any_flags_requesteeble ||= grep { $_->requestee_id } @{$self->flags}; + $self->{'any_flags_requesteeble'} = $any_flags_requesteeble; return $self->{'any_flags_requesteeble'}; } diff --git a/attachment.cgi b/attachment.cgi index b62e4f23cc..8614026db5 100755 --- a/attachment.cgi +++ b/attachment.cgi @@ -400,7 +400,8 @@ sub enter { 'product_id' => $bug->product_id, 'component_id' => $bug->component_id}); $vars->{'flag_types'} = $flag_types; - $vars->{'any_flags_requesteeble'} = grep($_->is_requesteeble, @$flag_types); + $vars->{'any_flags_requesteeble'} = + grep { $_->is_requestable && $_->is_requesteeble } @$flag_types; $vars->{'token'} = issue_session_token('create_attachment:'); print $cgi->header(); @@ -542,7 +543,12 @@ sub edit { # We only want attachment IDs. @$bugattachments = map { $_->id } @$bugattachments; - $vars->{'any_flags_requesteeble'} = grep($_->is_requesteeble, @{$attachment->flag_types}); + my $any_flags_requesteeble = + grep { $_->is_requestable && $_->is_requesteeble } @{$attachment->flag_types}; + # Useful in case a flagtype is no longer requestable but a requestee + # has been set before we turned off that bit. + $any_flags_requesteeble ||= grep { $_->requestee_id } @{$attachment->flags}; + $vars->{'any_flags_requesteeble'} = $any_flags_requesteeble; $vars->{'attachment'} = $attachment; $vars->{'attachments'} = $bugattachments;