From d756467055959872b1a443d2c60417135b0d05e9 Mon Sep 17 00:00:00 2001 From: "gerv%gerv.net" <> Date: Wed, 8 May 2002 04:28:39 +0000 Subject: Bug 140435 - Templatise GetCommandMenu. Patch by gerv; r=bbaetz, justdave. --- CGI.pl | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'CGI.pl') diff --git a/CGI.pl b/CGI.pl index b62913d36..f5ce6fb35 100644 --- a/CGI.pl +++ b/CGI.pl @@ -480,9 +480,52 @@ sub quietly_check_login() { if (!$loginok) { delete $::COOKIE{"Bugzilla_login"}; } + + $vars->{'user'} = GetUserInfo($::userid); + return $loginok; } +# Populate a hash with information about this user. +sub GetUserInfo { + my ($userid) = (@_); + my %user; + my @queries; + my %groups; + + # No info if not logged in + return \%user if ($userid == 0); + + $user{'login'} = $::COOKIE{"Bugzilla_login"}; + $user{'userid'} = $userid; + + SendSQL("SELECT mybugslink, realname, groupset FROM profiles " . + "WHERE userid = $userid"); + ($user{'showmybugslink'}, $user{'realname'}, $user{'groupset'}) = + FetchSQLData(); + + SendSQL("SELECT name, query, linkinfooter FROM namedqueries " . + "WHERE userid = $userid"); + while (MoreSQLData()) { + my %query; + ($query{'name'}, $query{'query'}, $query{'linkinfooter'}) = + FetchSQLData(); + push(@queries, \%query); + } + + $user{'queries'} = \@queries; + + SendSQL("select name, (bit & $user{'groupset'}) != 0 from groups"); + while (MoreSQLData()) { + my ($name, $bit) = FetchSQLData(); + $groups{$name} = $bit; + } + + $user{'groups'} = \%groups; + + return \%user; +} + sub CheckEmailSyntax { my ($addr) = (@_); my $match = Param('emailregexp'); -- cgit v1.2.3-24-g4f1b