mirror of
https://github.com/webmin/webmin.git
synced 2025-07-21 23:40:34 +00:00
Add page for configuring webserver options for Usermin
This commit is contained in:
@ -26,9 +26,6 @@ for($i=0; defined($tmod = $in{'tmod_'.$i}); $i++) {
|
||||
}
|
||||
&webmin::save_tempdirs(\%uconfig, \@tdirs);
|
||||
|
||||
# Save stack trace option
|
||||
$uconfig{'error_stack'} = $in{'stack'};
|
||||
|
||||
# Save umask
|
||||
if ($in{'umask_def'}) {
|
||||
delete($uconfig{'umask'});
|
||||
|
67
usermin/change_web.cgi
Executable file
67
usermin/change_web.cgi
Executable file
@ -0,0 +1,67 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Save webserver options
|
||||
|
||||
require './usermin-lib.pl';
|
||||
&ReadParse();
|
||||
&error_setup($text{'web_err'});
|
||||
&get_usermin_miniserv_config(\%miniserv);
|
||||
&get_usermin_config(\%uconfig);
|
||||
|
||||
# Save expires
|
||||
if ($in{'expires_def'}) {
|
||||
delete($miniserv{'expires'});
|
||||
}
|
||||
else {
|
||||
$in{'expires'} =~ /^\d+$/ ||
|
||||
&error($text{'web_eexpires'});
|
||||
$miniserv{'expires'} = $in{'expires'};
|
||||
}
|
||||
|
||||
# Save per-path expires
|
||||
for(my $i=0; defined($p = $in{"expirespath_$i"}); $i++) {
|
||||
$t = $in{"expirestime_$i"};
|
||||
next if ($p !~ /\S/);
|
||||
$t =~ /^\d+$/ || &error(&text('web_eexpires2', $i+1));
|
||||
push(@expires_paths, [ $p, $t ]);
|
||||
}
|
||||
$miniserv{'expires_paths'} = join("\t", map { $_->[0]."=".$_->[1] }
|
||||
@expires_paths);
|
||||
|
||||
# Save stack trace option
|
||||
$uconfig{'error_stack'} = $in{'stack'};
|
||||
|
||||
# Save showing of stderr
|
||||
$miniserv{'noshowstderr'} = !$in{'showstderr'};
|
||||
|
||||
if (!$miniserv{'session'}) {
|
||||
# Save password pass option
|
||||
$miniserv{'pass_password'} = $in{'pass'};
|
||||
}
|
||||
|
||||
# Save gzip option
|
||||
if ($in{'gzip'} == 1) {
|
||||
eval "use Compress::Zlib";
|
||||
$@ && &error(&text('advanced_egzip', '<tt>Compress::Zlib</tt>'));
|
||||
}
|
||||
$miniserv{'gzip'} = $in{'gzip'};
|
||||
|
||||
# Save redirect type
|
||||
$uconfig{'relative_redir'} = $in{'redir'};
|
||||
|
||||
# Save directory list option
|
||||
$miniserv{'nolistdir'} = !$in{'listdir'};
|
||||
|
||||
# Save global config
|
||||
&lock_file($usermin_config);
|
||||
&write_file($usermin_config, \%uconfig);
|
||||
&unlock_file($usermin_config);
|
||||
|
||||
# Save miniserv config
|
||||
&lock_file($usermin_miniserv_config);
|
||||
&put_usermin_miniserv_config(\%miniserv);
|
||||
&unlock_file($usermin_miniserv_config);
|
||||
&restart_usermin_miniserv();
|
||||
|
||||
&webmin_log("web");
|
||||
&redirect("");
|
||||
|
@ -28,3 +28,4 @@ blocked=1
|
||||
advanced=1
|
||||
mobile=1
|
||||
twofactor=1
|
||||
web=1
|
||||
|
@ -31,10 +31,6 @@ foreach $d (&webmin::get_tempdirs(\%uconfig), [ ]) {
|
||||
$ttable .= &ui_columns_end();
|
||||
print &ui_table_row($text{'advanced_tempmods'}, $ttable);
|
||||
|
||||
# Show call stack on error
|
||||
print &ui_table_row($text{'advanced_stack'},
|
||||
&ui_yesno_radio("stack", int($uconfig{'error_stack'})));
|
||||
|
||||
# Pass passwords to CGI programs
|
||||
print &ui_table_row($text{'advanced_pass'},
|
||||
&ui_yesno_radio("pass", int($miniserv{'pass_password'})));
|
||||
|
72
usermin/edit_web.cgi
Executable file
72
usermin/edit_web.cgi
Executable file
@ -0,0 +1,72 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Show the web serving options form
|
||||
|
||||
require './usermin-lib.pl';
|
||||
&ui_print_header(undef, $text{'web_title'}, "");
|
||||
&get_usermin_miniserv_config(\%miniserv);
|
||||
&get_usermin_config(\%uconfig);
|
||||
|
||||
print &ui_form_start("change_web.cgi", "post");
|
||||
print &ui_table_start($text{'web_header'}, undef, 2);
|
||||
|
||||
# Default content expiry time
|
||||
print &ui_table_row($text{'web_expires'},
|
||||
&ui_opt_textbox("expires", $miniserv{'expires'}, 10,
|
||||
$text{'web_expiresdef'}, $text{'web_expiressecs'}), undef);
|
||||
|
||||
# Additional expiry times based on path
|
||||
my @expires_paths;
|
||||
foreach my $pe (split(/\t+/, $miniserv{'expires_paths'})) {
|
||||
my ($p, $e) = split(/=/, $pe);
|
||||
if ($p && $e ne '') {
|
||||
push(@expires_paths, [ $p, $e ]);
|
||||
}
|
||||
}
|
||||
push(@expires_paths, [ undef, $miniserv{'expires'} || 86400 ]);
|
||||
my $etable = &ui_columns_start([ $text{'web_expirespath'},
|
||||
$text{'web_expirestime'} ]);
|
||||
for(my $i=0; $i<@expires_paths; $i++) {
|
||||
$etable .= &ui_columns_row([
|
||||
&ui_textbox("expirespath_$i", $expires_paths[$i]->[0], 40),
|
||||
&ui_textbox("expirestime_$i", $expires_paths[$i]->[1], 10),
|
||||
]);
|
||||
}
|
||||
$etable .= &ui_columns_end();
|
||||
print &ui_table_row($text{'web_expirespaths'}, $etable);
|
||||
|
||||
# Show call stack on error
|
||||
print &ui_table_row($text{'advanced_stack'},
|
||||
&ui_yesno_radio("stack", int($uconfig{'error_stack'})), undef);
|
||||
|
||||
# Show CGI errors
|
||||
print &ui_table_row($text{'advanced_showstderr'},
|
||||
&ui_yesno_radio("showstderr", int(!$miniserv{'noshowstderr'})), undef);
|
||||
|
||||
if (!$miniserv{'session'}) {
|
||||
# Pass passwords to CGI programs
|
||||
print &ui_table_row($text{'advanced_pass'},
|
||||
&ui_yesno_radio("pass", int($miniserv{'pass_password'})), undef);
|
||||
}
|
||||
|
||||
# Gzip static files?
|
||||
print &ui_table_row($text{'advanced_gzip'},
|
||||
&ui_radio("gzip", $miniserv{'gzip'},
|
||||
[ [ '', $text{'advanced_gzipauto'} ],
|
||||
[ 0, $text{'advanced_gzip0'} ],
|
||||
[ 1, $text{'advanced_gzip1'} ] ]), undef);
|
||||
|
||||
# Redirect type
|
||||
print &ui_table_row($text{'advanced_redir'},
|
||||
&ui_radio("redir", $uconfig{'relative_redir'} ? 1 : 0,
|
||||
[ [ 1, $text{'advanced_redir1'} ],
|
||||
[ 0, $text{'advanced_redir0'} ] ]), undef);
|
||||
|
||||
# Allow directory listing
|
||||
print &ui_table_row($text{'advanced_listdir'},
|
||||
&ui_yesno_radio("listdir", !$miniserv{'nolistdir'}));
|
||||
|
||||
print &ui_table_end();
|
||||
print &ui_form_end([ [ "save", $text{'save'} ] ]);
|
||||
|
||||
&ui_print_footer("", $text{'index_return'});
|
||||
|
BIN
usermin/images/web.gif
Normal file
BIN
usermin/images/web.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 524 B |
@ -79,6 +79,7 @@ $ver = &get_usermin_version();
|
||||
$miniserv{'session'} ? ( "list_sessions.cgi", "edit_twofactor.cgi" ) : ( ),
|
||||
"edit_blocked.cgi",
|
||||
"edit_mobile.cgi",
|
||||
"edit_web.cgi",
|
||||
"edit_advanced.cgi" );
|
||||
@titles = map { /_(\S+).cgi/; $text{"${1}_title"} } @links;
|
||||
@icons = map { /_(\S+).cgi/; "images/$1.gif" } @links;
|
||||
|
@ -502,4 +502,6 @@ copycert_ekeyfile=No private key file is set in Webmin
|
||||
twofactor_desc=Two-factor authentication allows Usermin users to enable use of an additional authentication device when logging in, such as a one-time passcode generator. Users must individually enroll with the selected authentication provider after it is enabled on this page.
|
||||
twofactor_eversion=The version of Usermin installed on your system does not support two-factor authentication.
|
||||
|
||||
web_header=Options for Usermin's built-in webserver
|
||||
|
||||
__norefs=1
|
||||
|
Reference in New Issue
Block a user