From: Don Armstrong Date: Tue, 3 Apr 2007 02:52:57 +0000 (-0700) Subject: * Strip out duplicates from usertags X-Git-Tag: release/2.6.0~566^2 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=e1282fbc363a4a713064123b5a8b3570b95b8816;p=debbugs.git * Strip out duplicates from usertags * Make @gFuckHeads @gExcludeFromControl and make the transcript message more informative. --- diff --git a/Debbugs/Bugs.pm b/Debbugs/Bugs.pm index e63f224..e80a2bc 100644 --- a/Debbugs/Bugs.pm +++ b/Debbugs/Bugs.pm @@ -369,7 +369,7 @@ sub get_bugs_flatfile{ my @bugs; while (<$flatfile>) { next unless m/^(\S+)\s+(\d+)\s+(\d+)\s+(\S+)\s+\[\s*([^]]*)\s*\]\s+(\w+)\s+(.*)$/; - my ($pkg,$bug,$status,$submitter,$severity,$tags) = ($1,$2,$3,$4,$5,$6,$7); + my ($pkg,$bug,$time,$status,$submitter,$severity,$tags) = ($1,$2,$3,$4,$5,$6,$7); next if exists $param{bug} and not grep {$bug == $_} __make_list($param{bugs}); if (exists $param{pkg}) { my @packages = splitpackages($pkg); diff --git a/Debbugs/Config.pm b/Debbugs/Config.pm index 68dd507..9105ba4 100644 --- a/Debbugs/Config.pm +++ b/Debbugs/Config.pm @@ -50,7 +50,7 @@ BEGIN { qw($gIncomingDir $gWebDir $gDocDir $gMaintainerFile), qw($gMaintainerFileOverride $gPseudoDescFile $gPackageSource), qw($gVersionPackagesDir $gVersionIndex $gBinarySourceMap $gSourceBinaryMap), - qw($gSendmail $gLibPath $gSpamScan), + qw($gSendmail $gLibPath $gSpamScan @gExcludeFromControl), qw(%gSeverityDisplay @gTags @gSeverityList @gStrongSeverities), qw(%gSearchEstraier), qw(@gPostProcessall), @@ -372,6 +372,13 @@ set_default(\%config,'package_version_re', +=item exclude_from_control + +Addresses which are not allowed to send messages to control + +=cut + +set_default(\%config,'exclude_from_control',[]); diff --git a/Debbugs/User.pm b/Debbugs/User.pm index 0a74713..8f97659 100644 --- a/Debbugs/User.pm +++ b/Debbugs/User.pm @@ -178,9 +178,13 @@ sub get_user { if defined $stanza{"Cat${i}Default"}; if (defined $stanza{"Cat${i}Order"}) { my @temp = split /\s*,\s*/, $stanza{"Cat${i}Order"}; + my %temp; my $min = min(@temp); - @temp = map {$_-$min} @temp; - $c{ord} = [@temp]; + # Order to 0 minimum; strip duplicates + $c{ord} = [map {$temp{$_}++; + $temp{$_}>1?():($_-$min); + } @temp + ]; } my @pri; my @ttl; for my $l (split /\n/, $stanza{"Cat${i}Options"}) { diff --git a/scripts/service.in b/scripts/service.in index d4e8e98..0ffcd20 100755 --- a/scripts/service.in +++ b/scripts/service.in @@ -143,9 +143,10 @@ $user = "" unless (Debbugs::User::is_valid_user($user)); my $quickabort = 0; -my $fuckheads = "(" . join("|", @gFuckheads) . ")"; -if (@gFuckheads and $replyto =~ m/$fuckheads/) { - &transcript("This service is unavailable.\n\n"); +my $fuckheads = "(" . join("|", @gExcludeFromControl) . ")"; +if (@gExcludeFromControl and $replyto =~ m/$fuckheads/) { + &transcript("You have been specifically excluded from using the\ncontrol interface.\n\n"); + &transcript("Have a nice day\n\n."); $quickabort = 1; } @@ -335,9 +336,11 @@ END if (@cats) { &transcript("Added usercategory $catname.\n\n"); $u->{"categories"}->{$catname} = [ @cats ]; + $u->{visible_cats}{$catname} = $hidden; } else { &transcript("Removed usercategory $catname.\n\n"); delete $u->{"categories"}->{$catname}; + delete $u->{visible_cats}{$catname}; } $u->write(); } elsif (m/^usertags?\s+\#?(-?\d+)\s+(([=+-])\s*)?(\S.*)?$/i) { diff --git a/t/lib/DebbugsTest.pm b/t/lib/DebbugsTest.pm index a2e0537..c299df7 100644 --- a/t/lib/DebbugsTest.pm +++ b/t/lib/DebbugsTest.pm @@ -79,6 +79,7 @@ sub create_debbugs_configuration { \$gSendmail='$sendmail_tester'; \$gSpoolDir='$spool_dir'; \$gLibPath='@{[getcwd()]}/scripts'; +\$gWebHost='localhost'; 1; END "$spool_dir/nextnumber" => qq(1\n),