From: Don Armstrong Date: Tue, 2 Dec 2008 16:33:07 +0000 (-0800) Subject: add add_user to Debbugs::CGI X-Git-Tag: release/2.6.0~467^2~12 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=60ec861a3cb25564a6f2c05e10beb049faad2f4c;p=debbugs.git add add_user to Debbugs::CGI --- diff --git a/Debbugs/CGI.pm b/Debbugs/CGI.pm index 3cd4348..e278003 100644 --- a/Debbugs/CGI.pm +++ b/Debbugs/CGI.pm @@ -35,12 +35,16 @@ use warnings; use strict; use vars qw($VERSION $DEBUG %EXPORT_TAGS @EXPORT_OK @EXPORT); use base qw(Exporter); + use Debbugs::URI; use HTML::Entities; use Debbugs::Common qw(getparsedaddrs make_list); use Params::Validate qw(validate_with :types); + use Debbugs::Config qw(:config); use Debbugs::Status qw(splitpackages isstrongseverity); +use Debbugs::User qw(); + use Mail::Address; use POSIX qw(ceil); use Storable qw(dclone); @@ -70,6 +74,7 @@ BEGIN{ util => [qw(cgi_parameters quitcgi), ], forms => [qw(option_form form_options_and_normal_param)], + usertags => [qw(add_user)], misc => [qw(maint_decode)], package_search => [qw(@package_search_key_order %package_search_keys)], #status => [qw(getbugstatus)], @@ -635,6 +640,38 @@ sub bug_linklist{ } +sub add_user { + my ($user,$usertags,$bug_usertags,$seen_users,$cats,$hidden) = @_; + $seen_users = {} if not defined $seen_users; + $bug_usertags = {} if not defined $bug_usertags; + $usertags = {} if not defined $usertags; + $cats = {} if not defined $cats; + $hidden = {} if not defined $hidden; + return if exists $seen_users->{$user}; + $seen_users->{$user} = 1; + + my $u = Debbugs::User::get_user($user); + + my %vis = map { $_, 1 } @{$u->{"visible_cats"}}; + for my $c (keys %{$u->{"categories"}}) { + $cats->{$c} = $u->{"categories"}->{$c}; + $hidden->{$c} = 1 unless defined $vis{$c}; + } + for my $t (keys %{$u->{"tags"}}) { + $usertags->{$t} = [] unless defined $usertags->{$t}; + push @{$usertags->{$t}}, @{$u->{"tags"}->{$t}}; + } + + %{$bug_usertags} = (); + for my $t (keys %{$usertags}) { + for my $b (@{$usertags->{$t}}) { + $bug_usertags->{$b} = [] unless defined $bug_usertags->{$b}; + push @{$bug_usertags->{$b}}, $t; + } + } +} + + =head1 Forms