# - The flag is unchanged
next if ($status eq $flag->{status});
- # - User can clear flags set by itself
- next if (($status eq "X") && ($user->id eq $flag->{setter}->id));
+ # - User in the $request_gid group can clear pending requests
+ next if ($status eq 'X'
+ && $flag->{status} eq '?'
+ && (!$flag->{type}->{request_gid}
+ || $user->in_group(&::GroupIdToName($flag->{type}->{request_gid}))));
# - User in the $grant_gid group can set/clear flags,
# including "+" and "-"