Initial add of defaria.com
[clearscm.git] / defaria.com / cvsadm / admin.cgi
1 #!/usr/bin/perl
2 ################################################################################
3 #
4 # File:         cvsadm/admin.cgi
5 # Description:  Provides the admin screen for cvsadm
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_td end_td 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 my $euid        = cookie "CVSAdmUser";
26 my $isadmin     = IsAdmin ($cvs_server, $repository, $euid);
27
28 sub StartForm {
29   my $action = shift;
30
31   print start_form {
32     -action     => $action
33   };
34   print hidden {
35     -name       => "cvs_server",
36     -value      => $cvs_server
37   };
38   print hidden {
39     -name       => "repository",
40     -value      => $repository
41   };
42   if (!$isadmin) {
43     print hidden {
44       -name     => "userid",
45       -value    => $userid
46     };
47   } # if
48 } # StartForm
49
50 sub Body {
51   my @users     = Users         $cvs_server, $repository;
52   my @groups    = Groups        $cvs_server, $repository;
53   my @sysusers  = SystemUsers   $cvs_server, $repository;
54
55   print h3 "<center>Maintenance Menu</center>";
56
57   print start_table {
58     -align              => "center",
59     -bgcolor            => "white",
60     -border             => 0,
61     -cellspacing        => 0,
62     -cellpadding        => 2,
63     -width              => "70%"};
64
65   # Users
66   print start_Tr;
67     print start_td {
68       -valign   => "middle",
69       -class    => "label"
70     };
71     print "User:";
72     print end_td;
73
74     StartForm "processaction.cgi";
75     print start_td {
76       -valign   => "middle",
77       -align    => "right",
78     };
79     print popup_menu {
80       -name     => "userid",
81       -values   => \@users,
82       -class    => "inputfield"
83     };
84     print end_td;
85
86     print start_td {
87       -valign   => "middle"
88     };
89     print submit {
90       -name     => "action",
91       -value    => "Edit User"
92     };
93     print end_td;
94
95     print start_td {
96       -valign   => "middle"
97     };
98     print submit {
99       -name     => "action",
100       -value    => "Delete User",
101       -onClick  => "return AreYouSure ('Are you sure you wish to delete the selected user?');"
102     };
103     print end_td;
104     print end_form;
105
106     StartForm "adduser.cgi";
107     print start_td {
108       -valign   => "middle"
109     };
110     print submit {
111       -name     => "action",
112       -value    => "Create User"
113     };
114     print end_td;
115     print end_form;
116   print end_Tr;
117
118   if ($euid eq "cvsroot") {
119   # Groups
120   print start_Tr;
121     print start_td {
122       -valign   => "middle",
123       -class    => "label"
124     };
125     print "Group:";
126     print end_td;
127
128     StartForm "processaction.cgi";
129     print start_td {
130       -valign   => "middle",
131       -align    => "right",
132     };
133     print popup_menu {
134       -name     => "group",
135       -values   => \@groups,
136       -class    => "inputfield"
137     };
138     print end_td;
139
140     print start_td {
141       -valign   => "middle"
142     };
143     print submit {
144       -name     => "action",
145       -value    => "Edit Group"
146     };
147     print end_td;
148
149     print start_td {
150       -valign   => "middle"
151     };
152     print submit {
153       -name     => "action",
154       -value    => "Delete Group",
155       -onClick  => "return AreYouSure ('Are you sure you wish to delete the selected group?');"
156     };
157     print end_td;
158     print end_form;
159
160     StartForm "addgroup.cgi";
161     print start_td {
162       -valign   => "middle"
163     };
164     print submit {
165       -name     => "submit",
166       -value    => "Create Group"
167     };
168     print end_td;
169     print end_form;
170
171   print end_Tr;
172
173   # System Users
174   print start_Tr;
175     print start_td {
176       -valign   => "middle",
177       -class    => "label"
178     };
179     print "System User:";
180     print end_td;
181
182     StartForm "processaction.cgi";
183     print start_td {
184       -valign   => "middle",
185       -align    => "right",
186     };
187     print popup_menu {
188       -name     => "sysuser",
189       -values   => \@sysusers,
190       -class    => "inputfield"
191     };
192     print end_td;
193
194     print start_td {
195       -valign   => "middle"
196     };
197     print submit {
198       -name     => "action",
199       -value    => "Edit SysUser"
200     };
201     print end_td;
202
203     print start_td {
204       -valign   => "middle"
205     };
206     print submit {
207       -name     => "action",
208       -value    => "Delete SysUser",
209       -onClick  => "return AreYouSure ('Are you sure you wish to delete the selected system user?');"
210     };
211     print end_td;
212     print end_form;
213
214     StartForm "addsysuser.cgi";
215     print start_td {
216       -valign   => "middle"
217     };
218     print submit {
219       -name     => "submit",
220       -value    => "Create SysUser"
221     };
222     print end_td;
223     print end_form;
224   print end_Tr;
225 } # if
226   print start_Tr;
227   print start_td {
228     -colspan    => 5,
229     -align      => "center",
230     -valign     => "middle"
231   };
232   print start_form {
233     -action     => "login.cgi"
234   };
235   print hidden {
236     -name       => "cvs_server",
237     -value      => $cvs_server
238   };
239   print hidden {
240     -name       => "repository",
241     -value      => $repository
242   };
243   print hidden {
244     -name       => "logout",
245     -value      => "yes"
246   };
247   print submit {
248     -name       => "Logout",
249   };
250   print end_td;
251   print end_Tr;
252   print end_table;
253 } # Body
254
255 Heading (
256          "getcookie",
257          $userid,
258          "CVSAdm:$Cvs_server:$repository: Administration",
259          "CVS Administration for $Cvs_server:$repository"
260 );
261
262 if (!$isadmin) {
263   DisplayError "You are not authorized to add users";
264 } # if
265
266 Body;
267 Footing;
268
269 exit;