#!/usr/bin/perl
################################################################################
#
# File: cvsadm/adduser.cgi
# Description: Provides the add user screen
# Author: Andrew@DeFaria.com
# Created: Thu Jul 7 16:54:07 PDT 2005
# Modified:
# Language: Perl
#
# (c) Copyright 2005, Andrew@DeFaria.com, all rights reserved.
#
################################################################################
use strict;
use warnings;
use CGI qw (:standard *table start_Tr end_Tr start_td end_td start_div end_div);
use CGI::Carp "fatalsToBrowser";
use CVSAdm;
my $cvs_server = param "cvs_server";
my $repository = param "repository";
my $Cvs_server = ucfirst $cvs_server;
my $userid = param "userid";
my $euid = cookie "CVSAdmUser";
my $password = param "password";
sub StartForm {
my $action = shift;
my $onSubmit = shift;
if (defined $onSubmit) {
print start_form {
-action => $action,
-onSubmit => $onSubmit
};
} else {
print start_form {
-action => $action
};
} # if
print hidden {
-name => "cvs_server",
-value => $cvs_server
};
print hidden {
-name => "repository",
-value => $repository
};
print hidden {
-name => "userid",
-value => $userid
};
} # StartForm
sub Body {
print "
";
StartForm "admin.cgi";
print submit {
-name => "Admin"
};
print end_form;
print "";
print start_table {
-align => "center",
-bgcolor => "white",
-border => 0,
-cellspacing => 0,
-cellpadding => 2,
-width => "50%"};
StartForm "add.cgi", "return validate_user (this);";
my @sysusers = SystemUsers $cvs_server, $repository;
my $system_users = popup_menu {-name => "sysusers",
-values => \@sysusers,
-class => "inputfield"};
print Tr [
td {-valign => "middle",
-class => "label"},
"Username:",
td {-colspan => 2,
-valign => "middle"},
textfield {-class => "inputfield",
-size => 15,
-name => "username"}
];
print Tr [
td {-valign => "middle",
-class => "label"},
"System User:",
td {-colspan => 2,
-valign => "middle"},
$system_users
];
print Tr [
td {-valign => "middle",
-class => "label"},
"Password:",
td {-colspan => 2,
-valign => "middle"},
password_field {-class => "inputfield",
-size => 15,
-name => "password"}
];
print Tr [
td {-valign => "middle",
-class => "label"},
"Fullname:",
td {-colspan => 2,
-valign => "middle"},
textfield {-class => "inputfield",
-size => 40,
-name => "fullname"}
];
print Tr [
td {-valign => "middle",
-class => "label"},
"Email:",
td {-colspan => 2,
-valign => "middle"},
textfield {-class => "inputfield",
-size => 40,
-name => "email"}
];
my @groups = Groups $cvs_server, $repository;
my $groups;
foreach (@groups) {
my $checkbox_str;
$checkbox_str = checkbox {
-name => $_
};
$groups .= $checkbox_str . "
";
} # foreach
print Tr [
td {-valign => "middle",
-class => "label"},
"Groups:",
td {-colspan => 2,
-valign => "middle"},
$groups
];
my $reader = checkbox {-name => "${repository}_reader",
-label => "Read access"};
my $writer = checkbox {-name => "${repository}_writer",
-label => "Write access"};
print Tr [
td {-valign => "middle",
-class => "label"},
$repository,
td {-align => "left",
-width => 200,
-valign => "middle"},
$reader,
td {-align => "left",
-width => 200,
-valign => "middle"},
$writer
];
print start_Tr;
print start_td {
-colspan => 2,
-align => "center"
};
print submit {
-name => "action",
-value => "Add User"
};
print end_form;
print end_td;
StartForm "login.cgi";
print start_td;
print hidden {
-name => "logout",
-value => "yes"
};
print submit {
-name => "Logout"
};
print end_form;
print end_td;
print end_table;
} # Body
$userid = Heading (
"getcookie",
$userid,
"CVSAdm:$Cvs_server:$repository: Add User",
"CVS Administration for $Cvs_server:$repository",
"Add New User"
);
if (!IsAdmin ($cvs_server, $repository, $userid)) {
DisplayError "You are not authorized to add users";
} # if
Body;
Footing;
exit;