use Debbugs::Log qw(read_log_records);
use Debbugs::CGI qw(:url :html :util);
use Debbugs::CGI::Bugreport qw(:all);
-use Debbugs::Common qw(buglog getmaintainers);
+use Debbugs::Common qw(buglog getmaintainers make_list);
use Debbugs::Packages qw(getpkgsrc);
use Debbugs::Status qw(splitpackages get_bug_status isstrongseverity);
use Debbugs::Text qw(:templates);
+
use CGI::Simple;
my $q = new CGI::Simple;
my $mbox = $param{'mbox'} eq 'yes';
my $mime = $param{'mime'} eq 'yes';
+my %bugusertags;
+my %ut;
+my %seen_users;
+
+for my $user (map {split /[\s*,\s*]+/} make_list($param{users}||[])) {
+ next unless length($user);
+ add_user($user,\%ut,\%bugusertags,\%seen_users);
+}
+
+if (defined $param{usertag}) {
+ for my $usertag (make_list($param{usertag})) {
+ my %select_ut = ();
+ my ($u, $t) = split /:/, $usertag, 2;
+ Debbugs::User::read_usertags(\%select_ut, $u);
+ unless (defined $t && $t ne "") {
+ $t = join(",", keys(%select_ut));
+ }
+ add_user($u,\%ut,\%bugusertags,\%seen_users);
+ push @{$param{tag}}, split /,/, $t;
+ }
+}
+
+
my $trim_headers = ($param{trim} || ((defined $msg and $msg)?'no':'yes')) eq 'yes';
my $mbox_status_message = $param{mboxstat} eq 'yes';
}
-my %status = %{get_bug_status(bug=>$ref)};
+my %status = %{get_bug_status(bug=>$ref,
+ bugusertags => \%bugusertags,
+ )};
my @records;
eval{
delete $param{pkg};
}
-our %bugusertags;
-our %ut;
+my %bugusertags;
+my %ut;
+my %seen_users;
+
for my $user (map {split /[\s*,\s*]+/} make_list($param{users}||[])) {
next unless length($user);
- add_user($user);
+ add_user($user,\%ut,\%bugusertags,\%seen_users,\%cats,\%hidden);
}
if (defined $param{usertag}) {
unless (defined $t && $t ne "") {
$t = join(",", keys(%select_ut));
}
- add_user($u);
+ add_user($u,\%ut,\%bugusertags,\%seen_users,\%cats,\%hidden);
push @{$param{tag}}, split /,/, $t;
}
}
$tail_html = $gHTMLTail;
$tail_html =~ s/SUBSTITUTE_DTIME/$dtime/;
-our %seen_users;
-sub add_user {
- my $ut = \%ut;
- my $u = shift;
-
- return if $seen_users{$u};
- $seen_users{$u} = 1;
-
- my $user = Debbugs::User::get_user($u);
-
- my %vis = map { $_, 1 } @{$user->{"visible_cats"}};
- for my $c (keys %{$user->{"categories"}}) {
- $cats{$c} = $user->{"categories"}->{$c};
- $hidden{$c} = 1 unless defined $vis{$c};
- }
-
- for my $t (keys %{$user->{"tags"}}) {
- $ut->{$t} = [] unless defined $ut->{$t};
- push @{$ut->{$t}}, @{$user->{"tags"}->{$t}};
- }
-
- %bugusertags = ();
- for my $t (keys %{$ut}) {
- for my $b (@{$ut->{$t}}) {
- $bugusertags{$b} = [] unless defined $bugusertags{$b};
- push @{$bugusertags{$b}}, $t;
- }
- }
-# set_option("bugusertags", \%bugusertags);
-}
my @bugs;
),
) {
next unless defined $package;
- add_user($package.'@'.$config{usertag_package_domain})
+ add_user($package.'@'.$config{usertag_package_domain},
+ \%ut,\%bugusertags,\%seen_users,\%cats,\%hidden)
if defined $config{usertag_package_domain};
}