Handle hostnames with upper-case letters
[webmin.git] / cluster-webmin / user_form.cgi
1 #!/usr/local/bin/perl
2 # user_form.cgi
3 # Display a form for adding a new webmin user to all servers
4
5 require './cluster-webmin-lib.pl';
6 &ui_print_header(undef, $text{'user_title1'}, "");
7
8 @hosts = &list_webmin_hosts();
9 @mods = &all_modules(\@hosts);
10 @themes = &all_themes(\@hosts);
11 @wgroups = &all_groups(\@hosts);
12
13 print "<form action=create_user.cgi method=post>\n";
14 print "<table border width=100%>\n";
15 print "<tr $tb> <td><b>$text{'user_header1'}</b></td> </tr>\n";
16 print "<tr $cb> <td><table width=100%>\n";
17
18 print "<tr> <td><b>$text{'user_name'}</b></td>\n";
19 print "<td><input name=name size=15></td>\n";
20
21 print "<td><b>$text{'user_group'}</b></td>\n";
22 print "<td><select name=group>\n";
23 print "<option selected value=''>$text{'user_nogroup'}\n";
24 foreach $g (@wgroups) {
25         print "<option>$g->{'name'}\n";
26         }
27 print "</select></td> </tr>\n";
28
29 print "<tr> <td><b>$text{'user_pass'}</b></td> <td colspan=3>\n";
30 print "<select name=pass_def>\n";
31 print "<option value=0 selected> $text{'user_set'} ..\n";
32 print "<option value=3> $text{'user_unix'}\n";
33 print "<option value=4> $text{'user_lock'}\n";
34 print "<option value=5> $text{'user_extauth'}\n";
35 print "</select><input type=password name=pass size=25></td> </tr>\n";
36
37 print "<tr> <td><b>$text{'user_lang'}</b></td> <td>\n";
38 print "<select name=lang>\n";
39 print "<option value='' selected>$text{'user_default'}\n";
40 foreach $l (&list_languages()) {
41         printf "<option value=%s>%s (%s)\n",
42                 $l->{'lang'},
43                 $l->{'desc'}, uc($l->{'lang'});
44         }
45 print "</select></td>\n";
46
47 print "<td><b>$text{'user_theme'}</b></td> <td>\n";
48 print "<select name=theme>\n";
49 print "<option value=webmin selected>$text{'user_default'}\n";
50 foreach $t ( { 'desc' => $text{'user_themedef'} }, @themes) {
51         printf "<option value='%s'>%s\n", $t->{'dir'}, $t->{'desc'};
52         }
53 print "</select></td> </tr>\n";
54
55 print "<tr> <td valign=top><b>$text{'user_ips'}</b></td>\n";
56 print "<td colspan=3><table><tr>\n";
57 print "<td nowrap><input name=ipmode type=radio value=0 checked> ",
58       "$text{'user_allips'}<br>\n";
59 print "<input name=ipmode type=radio value=1> $text{'user_allow'}<br>\n";
60 print "<input name=ipmode type=radio value=2> $text{'user_deny'}</td>\n";
61 print "<td><textarea name=ips rows=4 cols=30></textarea></td>\n";
62 print "</td> </tr></table> </tr>\n";
63
64 $mp = int((scalar(@mods)+2)/3);
65 print "<tr> <td valign=top><b>$text{'user_mods'}</b><br>",
66       "$text{'user_groupmods'}</td> <td colspan=3 nowrap>\n";
67 print "<select name=mods1 size=$mp multiple>\n";
68 for($i=0; $i<$mp; $i++) {
69         print "<option value=$mods[$i]->{'dir'}>$mods[$i]->{'desc'}\n";
70         }
71 print "</select>\n";
72 print "<select name=mods2 size=$mp multiple>\n";
73 for($i=$mp; $i<$mp*2; $i++) {
74         print "<option value=$mods[$i]->{'dir'}>$mods[$i]->{'desc'}\n";
75         }
76 print "</select>\n";
77 print "<select name=mods3 size=$mp multiple>\n";
78 for($i=$mp*2; $i<@mods; $i++) {
79         print "<option value=$mods[$i]->{'dir'}>$mods[$i]->{'desc'}\n";
80         }
81 print "</select>\n";
82
83 print "<br>\n";
84 print "<a href='' onClick='for(i=0; i<document.forms[0].mods1.options.length; i++) { document.forms[0].mods1.options[i].selected = true; } for(i=0; i<document.forms[0].mods2.options.length; i++) { document.forms[0].mods2.options[i].selected = true; } for(i=0; i<document.forms[0].mods3.options.length; i++) { document.forms[0].mods3.options[i].selected = true; } return false'>$text{'user_sall'}</a>&nbsp;\n";
85 print "<a href='' onClick='for(i=0; i<document.forms[0].mods1.options.length; i++) { document.forms[0].mods1.options[i].selected = false; } for(i=0; i<document.forms[0].mods2.options.length; i++) { document.forms[0].mods2.options[i].selected = false; } for(i=0; i<document.forms[0].mods3.options.length; i++) { document.forms[0].mods3.options[i].selected = false; } return false'>$text{'user_snone'}</a>&nbsp;\n";
86 print "<a href='' onClick='for(i=0; i<document.forms[0].mods1.options.length; i++) { document.forms[0].mods1.options[i].selected = !document.forms[0].mods1.options[i].selected; } for(i=0; i<document.forms[0].mods2.options.length; i++) { document.forms[0].mods2.options[i].selected = !document.forms[0].mods2.options[i].selected; } for(i=0; i<document.forms[0].mods3.options.length; i++) { document.forms[0].mods3.options[i].selected = !document.forms[0].mods3.options[i].selected; } return false'>$text{'user_sinvert'}</a><br>\n";
87
88 print "</td> </tr>\n";
89
90 &create_on_input($text{'user_servers'}, 0, 1);
91
92 print "</table></td></tr></table><br>\n";
93 print "<input type=submit value='$text{'create'}'></form>\n";
94
95 &ui_print_footer("", $text{'index_return'});
96