Handle hostnames with upper-case letters
[webmin.git] / webmin / edit_session.cgi
1 #!/usr/local/bin/perl
2 # edit_session.cgi
3 # Edit session login options
4
5 require './webmin-lib.pl';
6 print "Set-Cookie: sessiontest=1; path=/\n";
7 ui_print_header(undef, $text{'session_title'}, "");
8 get_miniserv_config(\%miniserv);
9
10 print "$text{'session_desc1'}<p>\n";
11 print "$text{'session_desc2'}<p>\n";
12
13 print ui_form_start("change_session.cgi", "post");
14 print ui_table_start($text{'session_header'});
15 print "<tr $cb> <td nowrap>\n";
16
17 # Bad password delay
18 printf "<input type=radio name=passdelay value=0 %s> %s<br>\n",
19         $miniserv{'passdelay'} ? '' : 'checked', $text{'session_pdisable'};
20 printf "<input type=radio name=passdelay value=1 %s> %s<br>\n",
21         $miniserv{'passdelay'} ? 'checked' : '', $text{'session_penable'};
22
23 # Block bad hosts
24 printf "&nbsp;&nbsp;&nbsp;<input type=checkbox name=blockhost_on value=1 %s>\n",
25         $miniserv{'blockhost_failures'} ? "checked" : "";
26 print text('session_blockhost',
27     ui_textbox("blockhost_failures", $miniserv{'blockhost_failures'}, 4),
28     ui_textbox("blockhost_time", $miniserv{'blockhost_time'}, 4)),"<br>\n";
29
30 # Block bad users
31 printf "&nbsp;&nbsp;&nbsp;<input type=checkbox name=blockuser_on value=1 %s>\n",
32         $miniserv{'blockuser_failures'} ? "checked" : "";
33 print text('session_blockuser',
34     ui_textbox("blockuser_failures", $miniserv{'blockuser_failures'}, 4),
35     ui_textbox("blockuser_time", $miniserv{'blockuser_time'}, 4)),"<br>\n";
36
37 # Lock bad users
38 print "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n",
39       ui_checkbox("blocklock", 1, $text{'session_blocklock'},
40                    $miniserv{'blocklock'}),"<br>\n";
41
42 # Log to syslog
43 eval "use Sys::Syslog qw(:DEFAULT setlogsock)";
44 if (!$@) {
45         print ui_checkbox('syslog', 1, $text{'session_syslog2'},
46           $miniserv{'syslog'});
47         }
48 else {
49         print ui_hidden('syslog', $miniserv{'syslog'});
50         }
51 print "<p>\n";
52
53 printf "<input type=radio name=session value=0 %s> %s<br>\n",
54         !$miniserv{'session'} ? "checked" : "", $text{'session_disable'};
55 printf "<input type=radio name=session value=1 %s> %s<br>\n",
56         $miniserv{'session'} ? "checked" : "", $text{'session_enable'};
57 printf "&nbsp;&nbsp;&nbsp;<input type=checkbox name=logouttime_on value=1 %s>\n",
58         $miniserv{'logouttime'} ? "checked" : "";
59 print text('session_logouttime',
60         "<input name=logouttime value='$miniserv{'logouttime'}' size=10>"),"<br>\n";
61 #printf "&nbsp;&nbsp;&nbsp;<input type=checkbox name=locking value=1 %s>\n",
62 #       $gconfig{'locking'} ? "checked" : "";
63 #print "$text{'session_locking'}<br>\n";
64 print '&nbsp;&nbsp;&nbsp;', ui_checkbox('remember', 1, $text{'session_remember'},
65        !$gconfig{'noremember'}), "<br>\n";
66 print '&nbsp;&nbsp;&nbsp;', ui_checkbox('realname', 1,
67        $text{'session_realname'}, $gconfig{'realname'}), "<br>\n";
68 print '&nbsp;&nbsp;&nbsp;', ui_checkbox('utmp', 1, $text{'session_utmp'},
69        $miniserv{'utmp'}), "<br>\n";
70 printf "&nbsp;&nbsp;&nbsp;<input type=radio name=banner_def value=1 %s> %s\n",
71         $gconfig{'loginbanner'} ? "" : "checked", $text{'session_banner1'};
72 printf "<input type=radio name=banner_def value=0 %s> %s\n",
73         $gconfig{'loginbanner'} ? "checked" : "", $text{'session_banner0'};
74 printf "<input name=banner size=30 value='%s'> %s<br>\n",
75         $gconfig{'loginbanner'}, &file_chooser_button("banner");
76 print "<p>\n";
77
78 printf "<input type=radio name=localauth value=0 %s> %s<br>\n",
79         !$miniserv{'localauth'} ? "checked" : "", $text{'session_localoff'};
80 printf "<input type=radio name=localauth value=1 %s> %s<br>\n",
81         $miniserv{'localauth'} ? "checked" : "", $text{'session_localon'};
82 print "<p>\n";
83
84 # Use PAM or shadow file?
85 printf "<input type=radio name=no_pam value=0 %s> %s<br>\n",
86         !$miniserv{'no_pam'} ? "checked" : "", $text{'session_pamon'};
87 printf "<input type=radio name=no_pam value=1 %s> %s<br>\n",
88         $miniserv{'no_pam'} ? "checked" : "", $text{'session_pamoff'};
89 print "&nbsp;&nbsp;&nbsp;",&text('session_pfile',
90         "<input name=passwd_file size=20 value='$miniserv{'passwd_file'}'>",
91         "<input name=passwd_uindex size=2 value='$miniserv{'passwd_uindex'}'>",
92         "<input name=passwd_pindex size=2 value='$miniserv{'passwd_pindex'}'>"),
93         "<br>\n";
94 print "&nbsp;&nbsp;&nbsp;",
95         ui_checkbox("pam_conv", 1, $text{'session_pamconv'},
96                      $miniserv{'pam_conv'}),"<p>\n";
97
98 # Unix password change
99 print &ui_oneradio("cmd_def", 1, $text{'session_cmddef1'},
100                    !$gconfig{'passwd_cmd'}),"<br>\n";
101 print &ui_oneradio("cmd_def", 0, $text{'session_cmddef0'},
102                    $gconfig{'passwd_cmd'})," ",
103       &ui_textbox("cmd", $gconfig{'passwd_cmd'}, 40),"<p>\n";
104
105 print "$text{'session_pmodedesc3'}<br>\n";
106 foreach $m (0 .. 2) {
107         printf "<input type=radio name=passwd_mode value=%d %s> %s\n",
108                 $m, $miniserv{'passwd_mode'} == $m ? "checked" : "",
109                 $text{'session_pmode'.$m};
110         print $m == 2 ? "<p>\n" : "<br>\n";
111         }
112
113 # Squid-style authentication program
114 print "$text{'session_extauth'} ",
115       "<input name=extauth size=40 value='$miniserv{'extauth'}'><p>\n";
116
117 # Password encryption format
118 printf "<input type=radio name=md5pass value=0 %s> %s<br>\n",
119         !$gconfig{'md5pass'} ? "checked" : "", $text{'session_md5off'};
120 printf "<input type=radio name=md5pass value=1 %s> %s<br>\n",
121         $gconfig{'md5pass'} ? "checked" : "", $text{'session_md5on'};
122
123 print ui_table_end();
124 print ui_form_end([ [ "save", $text{'save'} ] ]);
125
126 ui_print_footer("", $text{'index_return'});
127