1#!/usr/local/bin/perl 2# edit_session.cgi 3# Edit session login options 4 5require './usermin-lib.pl'; 6$access{'session'} || &error($text{'acl_ecannot'}); 7print "Set-Cookie: sessiontest=1; path=/\n"; 8&ui_print_header(undef, $text{'session_title'}, ""); 9&get_usermin_miniserv_config(\%miniserv); 10$ver = &get_usermin_version(); 11 12&get_usermin_config(\%uconfig); 13print "$text{'session_desc1'}<p>\n"; 14print "$text{'session_desc2'}<p>\n"; 15 16print ui_form_start("change_session.cgi", "post"); 17print ui_table_start($text{'session_header'}, undef, 2); 18 19# Bad password delay 20print &ui_table_row($text{'session_ptimeout'}, 21 &ui_radio("passdelay", $miniserv{'passdelay'} ? 1 : 0, 22 [ [ 0, $text{'session_pdisable'}."<br>\n" ], 23 [ 1, $text{'session_penable'} ] ])); 24 25# Block hosts 26print &ui_table_row($text{'session_pblock'}, 27 &ui_checkbox("blockhost_on", 1, 28 text('session_blockhost', 29 ui_textbox("blockhost_failures", $miniserv{'blockhost_failures'}, 4), 30 ui_textbox("blockhost_time", $miniserv{'blockhost_time'}, 4)), 31 $miniserv{'blockhost_failures'} ? 1 : 0)); 32 33# Block users 34print &ui_table_row("", 35 &ui_checkbox("blockuser_on", 1, 36 text('session_blockuser', 37 ui_textbox("blockuser_failures", $miniserv{'blockuser_failures'}, 4), 38 ui_textbox("blockuser_time", $miniserv{'blockuser_time'}, 4)), 39 $miniserv{'blockuser_failures'} ? 1 : 0)); 40 41# Log to syslog 42eval "use Sys::Syslog qw(:DEFAULT setlogsock)"; 43if (!$@) { 44 print &ui_table_row($text{'session_syslog3'}, 45 &ui_yesno_radio("syslog", $miniserv{'syslog'})); 46 } 47else { 48 print ui_hidden('syslog', $miniserv{'syslog'}); 49 } 50print "<p>\n"; 51 52# Session authentication 53print &ui_table_row($text{'session_stype'}, 54 &ui_radio("session", $miniserv{'session'} ? 1 : 0, 55 [ [ 0, $text{'session_disable'}."<br>" ], 56 [ 1, $text{'session_enable'} ] ])); 57 58# Session auth options 59print &ui_table_row($text{'session_sopts'}, 60 &ui_checkbox("logouttime_on", 1, 61 &text('session_logouttime', 62 &ui_textbox("logouttime", $miniserv{'logouttime'}, 10)), 63 $miniserv{'logouttime'} ? 1 : 0). 64 "<br>\n". 65 &ui_checkbox("remember", 1, $text{'session_remember'}, 66 $gconfig{'noremember'} ? 0 : 1). 67 "<br>\n". 68 &ui_checkbox("realname", 1, $text{'session_realname'}, 69 $gconfig{'realname'} ? 1 : 0). 70 "<br>\n". 71 &ui_checkbox("session_ip", 1, $text{'session_ip'}, 72 $miniserv{'session_ip'} ? 1 : 0). 73 "<br>\n". 74 &ui_checkbox("utmp", 1, $text{'session_utmp'}, 75 $miniserv{'utmp'} ? 1 : 0)); 76 77# Pre-login banner 78print &ui_table_row($text{'session_banner'}, 79 &ui_radio("banner_def", $gconfig{'loginbanner'} ? 0 : 1, 80 [ [ 1, $text{'session_banner1'}."<br>" ], 81 [ 0, $text{'session_banner0'} ] ]). 82 &ui_filebox("banner", $gconfig{'loginbanner'}, 50)); 83 84# Local authentication 85print &ui_table_row($text{'session_local'}, 86 &ui_radio("localauth", $miniserv{'localauth'} ? 1 : 0, 87 [ [ 0, $text{'session_localoff'}."<br>" ], 88 [ 1, $text{'session_localon'} ] ])); 89 90# Authentication mode 91@users = &get_usermin_miniserv_users(); 92$authmode = $users[0]->{'pass'} eq 'e' ? 2 : 93 $miniserv{'no_pam'} ? 1 : 0; 94print &ui_table_row($text{'session_authmode'}, 95 &ui_radio("authmode", $authmode, 96 [ [ 0, $text{'session_authmode0'}."<br>" ], 97 [ 1, &text('session_authmode1', 98 &ui_textbox("passwd_file", 99 $miniserv{'passwd_file'}, 20), 100 &ui_textbox("passwd_uindex", 101 $miniserv{'passwd_uindex'}, 2), 102 &ui_textbox("passwd_pindex", 103 $miniserv{'passwd_pindex'}, 2)). 104 "<br>" ], 105 [ 2, $text{'session_authmode2'}." ". 106 &ui_textbox("extauth", $miniserv{'extauth'}, 40) ] ])); 107 108# PAM options 109print &ui_table_row($text{'session_popts'}, 110 ui_checkbox("pam_conv", 1, $text{'session_pamconv'}, 111 $miniserv{'pam_conv'}). 112 "<br>". 113 ui_checkbox("pam_end", 1, $text{'session_pamend'}, 114 $miniserv{'pam_end'})); 115 116# Unix password change 117print &ui_table_row($text{'session_cmddef'}, 118 &ui_oneradio("cmd_def", 1, $text{'session_cmddef1'}, 119 !$gconfig{'passwd_cmd'}). 120 "<br>". 121 &ui_oneradio("cmd_def", 0, $text{'session_cmddef0'}, 122 $gconfig{'passwd_cmd'}). 123 " ". 124 &ui_textbox("cmd", $gconfig{'passwd_cmd'}, 60)); 125 126if ($miniserv{'passwd_cindex'} ne '') { 127 # Password expiry policy 128 print &ui_table_row($text{'session_pmodedesc3'}, 129 &ui_radio("passwd_mode", $miniserv{'passwd_mode'} || 0, 130 [ [ 0, $text{'session_pmode0'}."<br>" ], 131 [ 1, $text{'session_pmode1'}."<br>" ], 132 [ 2, $text{'session_pmode2'} ] ])); 133 } 134 135# Prompt to choose password at login 136print &ui_table_row($text{'session_blank'}, 137 &ui_yesno_radio("passwd_blank", $miniserv{'passwd_blank'})); 138 139# Try adding domain name to username? 140print &ui_table_row($text{'session_domain'}, 141 &ui_yesno_radio("domainuser", $miniserv{'domainuser'}). 142 "<br>\n". 143 &ui_checkbox("domainstrip", 1, $text{'session_strip'}, 144 $miniserv{'domainstrip'}). 145 "<br>\n". 146 &ui_checkbox("user_mapping_on", 1, $text{'session_usermap'}, 147 $miniserv{'user_mapping'})." ". 148 &ui_filebox("user_mapping", $miniserv{'user_mapping'}, 30). 149 "<br>\n". 150 "<b>".$text{'session_userfmt'}."</b> ". 151 &ui_radio("user_mapping_reverse", 152 int($miniserv{'user_mapping_reverse'}), 153 [ [ 0, $text{'session_userfmt0'} ], 154 [ 1, $text{'session_userfmt1'} ] ])); 155 156# Create homedir at login? 157print &ui_table_row($text{'session_homedir'}, 158 &ui_yesno_radio("create_homedir", $uconfig{'create_homedir'})); 159 160# Perms for new homedir 161print &ui_table_row($text{'session_homedir_perms'}, 162 &ui_opt_textbox("create_homedir_perms", 163 $uconfig{'create_homedir_perms'}, 4, $text{'default'})); 164 165print ui_table_end(); 166print ui_form_end([ [ "save", $text{'save'} ] ]); 167 168&ui_print_footer("", $text{'index_return'}); 169 170