From ecc9e10fa2a3522ffe3fc2a40e439aa2fc592abe Mon Sep 17 00:00:00 2001 From: "mkanat%bugzilla.org" Date: Wed, 3 Feb 2010 20:26:05 +0000 Subject: [PATCH] Bug 543500: Cannot add/edit components anymore (regression in user matching) r/a=mkanat git-svn-id: svn://10.0.0.236/branches/BUGZILLA-3_6-BRANCH@259591 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/webtools/bugzilla/.bzrrev | 2 +- mozilla/webtools/bugzilla/Bugzilla/User.pm | 24 +++++++++++----------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/mozilla/webtools/bugzilla/.bzrrev b/mozilla/webtools/bugzilla/.bzrrev index 478f3f9889f..db00f430c19 100644 --- a/mozilla/webtools/bugzilla/.bzrrev +++ b/mozilla/webtools/bugzilla/.bzrrev @@ -1 +1 @@ -6953 \ No newline at end of file +6954 \ No newline at end of file diff --git a/mozilla/webtools/bugzilla/Bugzilla/User.pm b/mozilla/webtools/bugzilla/Bugzilla/User.pm index d1e4694eca1..244bc5b9415 100644 --- a/mozilla/webtools/bugzilla/Bugzilla/User.pm +++ b/mozilla/webtools/bugzilla/Bugzilla/User.pm @@ -1197,25 +1197,21 @@ sub match_field { } $raw_field = clean_text($raw_field || ''); - # Tolerate fields that do not exist (in case you specify - # e.g. the QA contact, and it's currently not in use). - next unless ($raw_field && $raw_field ne ''); - - my @queries = (); - # Now we either split $raw_field by spaces/commas and put the list # into @queries, or in the case of fields which only accept single # entries, we simply use the verbatim text. - - # single field + my @queries; if ($fields->{$field}->{'type'} eq 'single') { @queries = ($raw_field); - - # multi-field + # We will repopulate it later if a match is found, else it must + # be set to an empty string so that the field remains defined. + $data->{$field} = ''; } elsif ($fields->{$field}->{'type'} eq 'multi') { @queries = split(/[\s,;]+/, $raw_field); - + # We will repopulate it later if a match is found, else it must + # be undefined. + delete $data->{$field}; } else { # bad argument @@ -1225,6 +1221,10 @@ sub match_field { }); } + # Tolerate fields that do not exist (in case you specify + # e.g. the QA contact, and it's currently not in use). + next unless (defined $raw_field && $raw_field ne ''); + my $limit = 0; if ($params->{'maxusermatches'}) { $limit = $params->{'maxusermatches'} + 1; @@ -1284,7 +1284,7 @@ sub match_field { if ($fields->{$field}->{'type'} eq 'single') { $data->{$field} = $logins[0] || ''; } - else { + elsif (scalar @logins) { $data->{$field} = \@logins; } }