Initial add of defaria.com
[clearscm.git] / defaria.com / cvsadm / modifyuser.cgi
1 #!/usr/bin/perl
2 ################################################################################
3 #
4 # File:         cvsadm/modifyuser.cgi
5 # Description:  Modify 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 "userid";
25
26 sub Body {
27   my %user_record;
28
29   $user_record {userid}         = param ("userid");
30   $user_record {fullname}       = param ("fullname");
31   $user_record {email}          = param ("email");
32   $user_record {old_password}   = param ("old_password");
33   $user_record {new_password}   = param ("new_password");
34
35   my $system_user = param ("sysusers");
36
37   if (defined $system_user) {
38     $user_record {system_user} = $system_user;
39   } # if
40
41   my @groups = Groups $cvs_server, $repository;
42
43   my $first_time = 1;
44
45   foreach (@groups) {
46     my $toggle = param $_;
47     if (defined $toggle and $toggle eq "on") {
48       if ($first_time) {
49         $user_record {groups} = $_;
50         $first_time = 0;
51       } else {
52         $user_record {groups} .= ",$_";
53       } # if
54     } # if
55   } # foreach
56
57   if (param ($repository . "_reader")) {
58     $user_record {$repository} = "r";
59   } # if
60
61   if (param ($repository . "_writer")) {
62     $user_record {$repository} .= "w";
63   } # if
64
65   if (UpdateUser $cvs_server, $repository, %user_record) {
66     DisplayError "Unable to update " . $user_record {userid};
67   } else {
68     DisplayMsg "User " . $user_record {userid} . " updated";
69     print start_form {
70       -method   => "post",
71       -action   => "edituser.cgi"};
72     print hidden {
73       -name     => "userid",
74       -value    => $user_record {userid}
75     };
76     print hidden {
77       -name     => "cvs_server",
78       -value    => $cvs_server
79     };
80     print hidden {
81       -name     => "repository",
82       -value    => $repository
83     };
84     print hidden {
85       -name     => "logout",
86       -value    => "yes"
87     };
88     print "<center>", submit {-name => "submit", -value => "OK"}, "</center>";
89     print end_form;
90   } # if
91 } # Body
92
93 $userid = Heading (
94                    "getcookie",
95                    "",
96                    "CVSAdm:$Cvs_server:$repository: Modify User",
97                    "CVS Administration for $Cvs_server:$repository",
98                    );
99 Body;
100 Footing;
101
102 exit;