Handle hostnames with upper-case letters
[webmin.git] / htaccess-htpasswd / edit_user.cgi
1 #!/usr/local/bin/perl
2 # edit_user.cgi
3 # Display a form for editing or creating a htpasswd user
4
5 require './htaccess-lib.pl';
6 &ReadParse();
7 @dirs = &list_directories();
8 ($dir) = grep { $_->[0] eq $in{'dir'} } @dirs;
9 &can_access_dir($dir->[0]) || &error($text{'dir_ecannot'});
10 &switch_user();
11
12 if ($in{'new'}) {
13         &ui_print_header(undef, $text{'edit_title1'}, "");
14         $user = { 'enabled' => 1 };
15         }
16 else {
17         &ui_print_header(undef, $text{'edit_title2'}, "");
18         $users = $dir->[2] == 3 ? &list_digest_users($dir->[1])
19                                 : &list_users($dir->[1]);
20         $user = $users->[$in{'idx'}];
21         }
22
23 print &ui_form_start("save_user.cgi", "post");
24 print &ui_hidden("idx", $in{'idx'});
25 print &ui_hidden("new", $in{'new'});
26 print &ui_hidden("dir", $in{'dir'});
27 print &ui_table_start($text{'edit_header'}, undef, 2);
28
29 # Username
30 print &ui_table_row($text{'edit_user'},
31         &ui_textbox("htuser", $user->{'user'}, 40));
32
33 # User enabled?
34 print &ui_table_row($text{'edit_enabled'},
35         &ui_yesno_radio("enabled", $user->{'enabled'} ? 1 : 0));
36
37 # Password
38 if ($in{'new'}) {
39         print &ui_table_row($text{'edit_pass'},
40                 &ui_textbox("htpass", undef, 20));
41         }
42 else {
43         print &ui_table_row($text{'edit_pass'},
44                 &ui_opt_textbox("htpass", undef, 20, $text{'edit_pass1'},
45                                 $text{'edit_pass0'}));
46         }
47
48 if ($dir->[2] == 3) {
49         # Digest realm
50         print &ui_table_row($text{'edit_dom'},
51                 &ui_textbox("dom", $user->{'dom'}, 40));
52         }
53
54 print &ui_table_end();
55 if ($in{'new'}) {
56         print &ui_form_end([ [ undef, $text{'create'} ] ]);
57         }
58 else {
59         print &ui_form_end([ [ undef, $text{'save'} ],
60                              [ "delete", $text{'delete'} ] ]);
61         }
62
63 &ui_print_footer("", $text{'index_return'});
64