From 3528bcbf713f93983cce817caf1e9bfc6a40ab36 Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Tue, 2 Dec 2008 08:33:59 -0800 Subject: [PATCH] use add_user from Debbugs::CGI; get usertags in bugreports --- cgi/bugreport.cgi | 30 ++++++++++++++++++++++++++++-- cgi/pkgreport.cgi | 43 ++++++++----------------------------------- 2 files changed, 36 insertions(+), 37 deletions(-) diff --git a/cgi/bugreport.cgi b/cgi/bugreport.cgi index 456bd69..bed3912 100755 --- a/cgi/bugreport.cgi +++ b/cgi/bugreport.cgi @@ -15,7 +15,7 @@ use Debbugs::Config qw(:globals :text); 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); @@ -23,6 +23,7 @@ use Scalar::Util qw(looks_like_number); use Debbugs::Text qw(:templates); + use CGI::Simple; my $q = new CGI::Simple; @@ -58,6 +59,29 @@ my $reverse = $param{'reverse'} eq 'yes'; 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'; @@ -110,7 +134,9 @@ if ($buglog =~ m/\.gz$/) { } -my %status = %{get_bug_status(bug=>$ref)}; +my %status = %{get_bug_status(bug=>$ref, + bugusertags => \%bugusertags, + )}; my @records; eval{ diff --git a/cgi/pkgreport.cgi b/cgi/pkgreport.cgi index 3ddad9b..f4ad449 100755 --- a/cgi/pkgreport.cgi +++ b/cgi/pkgreport.cgi @@ -236,11 +236,13 @@ if (exists $param{pkg}) { 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}) { @@ -251,7 +253,7 @@ 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; } } @@ -273,36 +275,6 @@ my $tail_html = $gHTMLTail; $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; @@ -323,7 +295,8 @@ for my $package (# For binary packages, add the binary package ), ) { 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}; } -- 2.39.2