Initial add of defaria.com
[clearscm.git] / defaria.com / cvsadm / add.cgi
1 #!/usr/bin/perl
2 ################################################################################
3 #
4 # File:         cvsadm/add.cgi
5 # Description:  Add user to the passwd and repository reader/writer files
6 # Author:       Andrew@DeFaria.com
7 # Created:      Thu Jul  7 16:54:07 PDT 2005
8 # Modified:
9 # Language:     Perl
10 #
11 # (c) Copyright 2005, Andrew@DeFaria.com, all rights reserved.
12 #
13 ################################################################################
14 use strict;
15 use warnings;
16
17 use CGI qw (:standard *table start_Tr end_Tr start_div end_div);
18 use CGI::Carp "fatalsToBrowser";
19 use CVSAdm;
20
21 my $cvs_server  = param "cvs_server";
22 my $Cvs_server  = ucfirst $cvs_server;
23 my $repository  = param "repository";
24 my $userid      = param "username";
25
26 sub Body {
27   my %user_record;
28
29   $user_record {userid}         = $userid;
30   $user_record {fullname}       = param ("fullname");
31   $user_record {email}          = param ("email");
32   $user_record {password}       = param ("password");
33
34   my $system_user = param ("sysusers");
35
36   if (defined $system_user) {
37     $user_record {system_user} = $system_user;
38   } # if
39
40   my @groups = Groups $cvs_server, $repository;
41
42   my $first_time = 1;
43
44   foreach (@groups) {
45     my $toggle = param $_;
46     if (defined $toggle and $toggle eq "on") {
47       if ($first_time) {
48         $user_record {groups} = $_;
49         $first_time = 0;
50       } else {
51         $user_record {groups} .= ",$_";
52       } # if
53     } # if
54   } # foreach
55
56   if (param ($repository . "_reader")) {
57     $user_record {$repository} = "r";
58   } # if
59
60   if (param ($repository . "_writer")) {
61     $user_record {$repository} = "rw";
62   } # if
63
64   my ($status, $msg) = AddUser $cvs_server, $repository, %user_record;
65
66   if ($status) {
67     DisplayError $msg, $status;
68   } else {
69     DisplayMsg $msg;
70   } # if
71
72   print start_form {
73     -method     => "post",
74     -action     => "adduser.cgi"};
75   print hidden {
76     -name       => "userid",
77     -value      => $user_record {userid}
78   };
79   print hidden {
80     -name       => "cvs_server",
81     -value      => $cvs_server
82   };
83   print hidden {
84     -name       => "repository",
85     -value      => $repository
86   };
87   print "<center>", submit {-name => "submit", -value => "OK"}, "</center>";
88   print end_form;
89 } # Body
90
91 Heading (
92          "getcookie",
93          "",
94          "CVSAdm:$Cvs_server:$repository: Add User",
95          "CVS Administration for $Cvs_server:$repository",
96 );
97 Body;
98 Footing;
99
100 exit;