]> git.donarmstrong.com Git - debbugs.git/commitdiff
* Strip out duplicates from usertags
authorDon Armstrong <don@volo>
Tue, 3 Apr 2007 02:52:57 +0000 (19:52 -0700)
committerDon Armstrong <don@volo>
Tue, 3 Apr 2007 02:52:57 +0000 (19:52 -0700)
 * Make @gFuckHeads @gExcludeFromControl and make the transcript
   message more informative.

Debbugs/Bugs.pm
Debbugs/Config.pm
Debbugs/User.pm
scripts/service.in
t/lib/DebbugsTest.pm

index e63f2240b88f171a927137e97365de89ece10ce4..e80a2bcc5043a4295c179f75e1ac371f7fdb2888 100644 (file)
@@ -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);
index 68dd507abdfe81916d8c0587e777bcc3c3d146fe..9105ba4d6c250b4969ea1b3cf2e0e2455b8b5a2e 100644 (file)
@@ -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',[]);
 
 
 
index 0a7471376d35a085107830beeccf3d766cf5ad2c..8f97659d910defef2a717edc89204a737218c6d9 100644 (file)
@@ -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"}) {
index d4e8e98ed6d066bab95db98f659567d0f40a6c1b..0ffcd202ae58433737586fd373b28d35629768bc 100755 (executable)
@@ -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) {
index a2e0537d7336480d31f89edda01c72b9e859e9aa..c299df7768ada303b7c1a8a82e3cb6f7f1e100e4 100644 (file)
@@ -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),