- #!/usr/bin/perl -w
- # -*- perl -*-
- use P4CGI ;
- use strict ;
- #
- #################################################################
- # CONFIGURATION INFORMATION
- # All config info should be in P4CGI.pm
- #
- #################################################################
- #
- # P4 list user
- # List a p4 user
- #
- #################################################################
-
- # Get parameter
- my $user = P4CGI::cgi()->param("USER") ;
- unless(defined $user) {
- &P4CGI::bail("No user specified!") ;
- } ;
-
- # List all users
- my @userData ;
- &P4CGI::p4call(\@userData, "users" );
- my %userData = map { /^(\S+)/ ; ($1,1) ; } @userData ;
-
- # Get user info
- my %values ;
- my @fields ;
- if(exists $userData{$user}) {
- @fields = &P4CGI::p4readform("user -o $user",\%values);
- }
-
- # Fix email
- if(exists $values{"Email"}) {
- my $em = &P4CGI::fixSpecChar($values{"Email"}) ;
- $values{"Email"}=&P4CGI::ahref(-url => "mailto:$values{Email}",$em) ;
- }
- # Fix fullname
- if(exists $values{"FullName"}) {
- $values{"FullName"} = &P4CGI::fixSpecChar( $values{"FullName"}) ;
- }
- # Fix job view
- if(exists $values{"JobView"}) {
- my $v = $values{"JobView"} ;
- $values{"JobView"} = &P4CGI::ahref(-url => "jobList.cgi",
- "JOBVIEW=$v",
- "LIST=Y",
- $v) ;
- }
- # Fix group view
- {
- my @groups ;
- &P4CGI::p4call(\@groups,"groups $user") ;
- if(@groups > 0) {
- my $p = "In group" ;
- if(@groups > 1) { $p .="s" ; } ;
- push @fields,$p ;
- $values{$p} = join(",", map { &P4CGI::ahref(-url => "groupView.cgi",
- "GROUP=$_",
- $_) ; } @groups) ;
- }
- }
-
-
- print "",
- &P4CGI::start_page("User $user",
- &P4CGI::ul_list("<b>e-mail address</b> -- e-mail user",
- "<b>JobView</b> -- list jobs for this view",
- &P4CGI::ahref(-url => "clientList.cgi",
- "USER=$user",
- "List clients") .
- " -- List clients owned by user $user",
- &P4CGI::ahref(-url => "changeList.cgi",
- "USER=$user",
- "FSPC=//...",
- "List changes by user") .
- " -- List changes made by user $user",
- &P4CGI::ahref(-url => "userList.cgi",
- "List all users") .
- " -- List all users and groups",
- )) ;
-
- unless(exists $userData{$user}) {
- &P4CGI::signalError("User \"$user\" does not exist. ") ;
- }
-
-
- print
- &P4CGI::start_table("") ;
-
- my $f ;
- foreach $f (@fields) {
- print &P4CGI::table_row({-align => "right",
- -type => "th",
- -text => "$f"},
- $values{$f}) ;
- } ;
-
- my $openfiles ;
- &P4CGI::p4call(*P4, "opened -a" );
- my $line=0 ;
- while(<P4>) {
- chomp ;
- / by $user\@/ and do {
- $line++ ;
- /^(.*\#\d+) - (\S+) .* by \w+\@(\S+)/ or do { &P4CGI::ERROR("Unable to parse line $line ($_)") ;
- next ; } ;
- my $file = $1 ;
- my $reason = $2 ;
- my $client = $3 ;
- $client = &P4CGI::ahref(-url => "clientView.cgi",
- "CLIENT=$client",
- "<tt>$client</tt>") ;
- $file =~ /(.*)\#(\d+)/ ;
- if($reason ne "add") {
- $file = &P4CGI::ahref(-url => "fileLogView.cgi",
- "FSPC=$1",
- "REV=$2",
- "$file") ;
- }
- if(defined $openfiles) {
- $openfiles .= "<br><tt>$file</tt> - <b>$reason</b> by client $client" ;
- } else {
- $openfiles = "<tt>$file</tt> - <b>$reason</b> by client $client" ;
- } ;
- } ;
- } ;
- if(defined $openfiles) {
- print &P4CGI::table_row({-align => "right",
- -type => "th",
- -valign => "top",
- -text => "Open files"},
- "$openfiles") ;
- } ;
-
-
- print
- &P4CGI::end_table(),
- &P4CGI::end_page() ;
-
- #
- # That's all folks
- #
# |
Change |
User |
Description |
Committed |
|
#1
|
3624 |
Mitch Stuart |
Branch //public/perforce/utils to //guest/mitch_stuart/perforce/utils |
22 years ago
|
|
//guest/perforce_software/utils/p4db/P4DB_2.01/userView.cgi |
#1
|
1884 |
rmg |
Update to the current (2.01) P4DB. |
23 years ago
|
|