From: bbaetz%student.usyd.edu.au <> Date: Tue, 16 Apr 2002 15:29:01 +0000 (+0000) Subject: bug 117718 - Mass Change removes a bugs groupset if the bug was in the X-Git-Tag: bugzilla-2.16rc1~113 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=20c30bdcfbe368242694b297cf6d4b697b739257;p=thirdparty%2Fbugzilla.git bug 117718 - Mass Change removes a bugs groupset if the bug was in the wrong product group r=justdave x2 --- diff --git a/process_bug.cgi b/process_bug.cgi index fe9163eefa..ebdf43b778 100755 --- a/process_bug.cgi +++ b/process_bug.cgi @@ -445,10 +445,18 @@ if($::usergroupset ne '0') { SendSQL("SELECT bit, isactive FROM groups WHERE " . "isbuggroup != 0 AND bit & $::usergroupset != 0 ORDER BY bit"); while (my ($b, $isactive) = FetchSQLData()) { - if (!$::FORM{"bit-$b"}) { - $groupDel .= "+$b"; - } elsif ($::FORM{"bit-$b"} == 1 && $isactive) { - $groupAdd .= "+$b"; + # The multiple change page may not show all groups a bug is in + # (eg product groups when listing more than one product) + # Only consider groups which were present on the form. We can't do this + # for single bug changes because non-checked checkboxes aren't present. + # All the checkboxes should be shown in that case, though, so its not + # an issue there + if ($::FORM{'id'} || exists $::FORM{"bit-$b"}) { + if (!$::FORM{"bit-$b"}) { + $groupDel .= "+$b"; + } elsif ($::FORM{"bit-$b"} == 1 && $isactive) { + $groupAdd .= "+$b"; + } } } if ($groupAdd ne "0" || $groupDel ne "0") {