mirror of
https://github.com/webmin/webmin.git
synced 2025-07-23 00:30:33 +00:00
Add support for configuring internal redirects using UI #1588
This commit is contained in:
@ -26,6 +26,43 @@ for(my $i=0; defined($p = $in{"expirespath_$i"}); $i++) {
|
||||
}
|
||||
$miniserv{'expires_paths'} = join("\t", map { $_->[0]."=".$_->[1] }
|
||||
@expires_paths);
|
||||
# Save redirects
|
||||
delete($miniserv{'redirect_host'});
|
||||
delete($miniserv{'redirect_port'});
|
||||
delete($miniserv{'redirect_prefix'});
|
||||
delete($miniserv{'redirect_ssl'});
|
||||
my $redir_host = $in{'redirect_host'};
|
||||
$redir_host =~ /^[A-z0-9\-\.\:]+$/ ||
|
||||
$redir_host =~ /^\s*$/ ||
|
||||
&error(&text('web_eredirhost', &html_escape($redir_host)));
|
||||
$miniserv{'redirect_host'} = $redir_host
|
||||
if ($redir_host);
|
||||
my $redir_port = &trim($in{'redirect_port'});
|
||||
($redir_port =~ /^\d+$/ && $redir_port < 65536) ||
|
||||
$redir_port =~ /^\s*$/ ||
|
||||
&error(&text('bind_eport2', &html_escape($redir_port)));
|
||||
$miniserv{'redirect_port'} = $redir_port
|
||||
if ($redir_port);
|
||||
my $redir_pref = &trim($in{'redirect_prefix'});
|
||||
$redir_pref =~ /^\// || $redir_pref =~ /^\s*$/ ||
|
||||
&error($text{'web_eredirpref'});
|
||||
$redir_pref !~ /\s/ || &error($text{'web_eredirpref2'});
|
||||
$miniserv{'redirect_prefix'} = $redir_pref
|
||||
if ($redir_pref);
|
||||
my $redir_ssl = $in{'redirect_ssl'};
|
||||
$miniserv{'redirect_ssl'} = 1 if ($redir_ssl == 1);
|
||||
|
||||
# Save switch redirect to Usermin URL
|
||||
if ($in{'redirect_url_def'}) {
|
||||
delete($miniserv{'redirect_url'});
|
||||
}
|
||||
else {
|
||||
my $rediruurl = &trim($in{'redirect_url'});
|
||||
$rediruurl !~ /\s/ ||
|
||||
&error(&text('web_eredirurl',
|
||||
&html_escape($rediruurl)));
|
||||
$miniserv{'redirect_url'} = $rediruurl;
|
||||
}
|
||||
|
||||
# Save stack trace option
|
||||
$uconfig{'error_stack'} = $in{'stack'};
|
||||
|
@ -34,6 +34,26 @@ for(my $i=0; $i<@expires_paths; $i++) {
|
||||
$etable .= &ui_columns_end();
|
||||
print &ui_table_row($text{'web_expirespaths'}, $etable);
|
||||
|
||||
# Display redirects
|
||||
my $rtable = &ui_columns_start([ $text{'web_redirhost'},
|
||||
$text{'web_redirport'},
|
||||
$text{'web_redirpref'},
|
||||
$text{'web_redirssl'} ], 'auto');
|
||||
$rtable .= &ui_columns_row([
|
||||
&ui_textbox('redirect_host', $miniserv{'redirect_host'}, 30),
|
||||
&ui_textbox('redirect_port', $miniserv{'redirect_port'}, 5),
|
||||
&ui_textbox('redirect_prefix', $miniserv{'redirect_prefix'}, 10),
|
||||
&ui_checkbox("redirect_ssl", 1, $text{'redirect_ssl'},
|
||||
$miniserv{'redirect_ssl'}),
|
||||
], ['', '', '', ' style="text-align: center"']);
|
||||
$rtable .= &ui_columns_end();
|
||||
print &ui_table_row($text{'web_redirdesc'}, $rtable);
|
||||
|
||||
# Display switch redirect to Usermin URL
|
||||
print &ui_table_row($text{'web_rediruurl'},
|
||||
&ui_opt_textbox("redirect_url", $miniserv{'redirect_url'}, 40, $text{'default'}));
|
||||
|
||||
|
||||
# Show call stack on error
|
||||
print &ui_table_row($text{'advanced_stack'},
|
||||
&ui_yesno_radio("stack", int($uconfig{'error_stack'})), undef);
|
||||
|
@ -25,6 +25,31 @@ for(my $i=0; defined($p = $in{"expirespath_$i"}); $i++) {
|
||||
}
|
||||
$miniserv{'expires_paths'} = join("\t", map { $_->[0]."=".$_->[1] }
|
||||
@expires_paths);
|
||||
# Save redirects
|
||||
delete($miniserv{'redirect_host'});
|
||||
delete($miniserv{'redirect_port'});
|
||||
delete($miniserv{'redirect_prefix'});
|
||||
delete($miniserv{'redirect_ssl'});
|
||||
my $redir_host = $in{'redirect_host'};
|
||||
$redir_host =~ /^[A-z0-9\-\.\:]+$/ ||
|
||||
$redir_host =~ /^\s*$/ ||
|
||||
&error(&text('web_eredirhost', &html_escape($redir_host)));
|
||||
$miniserv{'redirect_host'} = $redir_host
|
||||
if ($redir_host);
|
||||
my $redir_port = &trim($in{'redirect_port'});
|
||||
($redir_port =~ /^\d+$/ && $redir_port < 65536) ||
|
||||
$redir_port =~ /^\s*$/ ||
|
||||
&error(&text('bind_eport2', &html_escape($redir_port)));
|
||||
$miniserv{'redirect_port'} = $redir_port
|
||||
if ($redir_port);
|
||||
my $redir_pref = &trim($in{'redirect_prefix'});
|
||||
$redir_pref =~ /^\// || $redir_pref =~ /^\s*$/ ||
|
||||
&error($text{'web_eredirpref'});
|
||||
$redir_pref !~ /\s/ || &error($text{'web_eredirpref2'});
|
||||
$miniserv{'redirect_prefix'} = $redir_pref
|
||||
if ($redir_pref);
|
||||
my $redir_ssl = $in{'redirect_ssl'};
|
||||
$miniserv{'redirect_ssl'} = 1 if ($redir_ssl == 1);
|
||||
|
||||
# Save stack trace option
|
||||
$gconfig{'error_stack'} = $in{'stack'};
|
||||
|
@ -33,6 +33,21 @@ for(my $i=0; $i<@expires_paths; $i++) {
|
||||
$etable .= &ui_columns_end();
|
||||
print &ui_table_row($text{'web_expirespaths'}, $etable);
|
||||
|
||||
# Display redirects
|
||||
my $rtable = &ui_columns_start([ $text{'web_redirhost'},
|
||||
$text{'web_redirport'},
|
||||
$text{'web_redirpref'},
|
||||
$text{'web_redirssl'} ], 'auto');
|
||||
$rtable .= &ui_columns_row([
|
||||
&ui_textbox('redirect_host', $miniserv{'redirect_host'}, 30),
|
||||
&ui_textbox('redirect_port', $miniserv{'redirect_port'}, 5),
|
||||
&ui_textbox('redirect_prefix', $miniserv{'redirect_prefix'}, 10),
|
||||
&ui_checkbox("redirect_ssl", 1, $text{'redirect_ssl'},
|
||||
$miniserv{'redirect_ssl'}),
|
||||
], ['', '', '', ' style="text-align: center"']);
|
||||
$rtable .= &ui_columns_end();
|
||||
print &ui_table_row($text{'web_redirdesc'}, $rtable);
|
||||
|
||||
# Show call stack on error
|
||||
print &ui_table_row($text{'advanced_stack'},
|
||||
&ui_yesno_radio("stack", int($gconfig{'error_stack'})), undef);
|
||||
|
@ -1080,6 +1080,16 @@ web_expirespaths=Client-side cache times based on URL path
|
||||
web_expirespath=Path regular expression
|
||||
web_expirestime=Cache time in seconds
|
||||
web_eexpires2=Missing or non-numeric client side cache time in row $1
|
||||
web_rediruurl=Post-login switch redirect URL
|
||||
web_redirdesc=Internal redirect URL overrides
|
||||
web_eredirurl='$1' contains spaces and is not a valid URL
|
||||
web_redirhost=Redirect host
|
||||
web_eredirhost='$1' is not a valid hostname
|
||||
web_redirport=Redirect port
|
||||
web_redirpref=Redirect prefix
|
||||
web_eredirpref=Prefix must start with forward slash
|
||||
web_eredirpref2=Prefix must not contain spaces
|
||||
web_redirssl=Redirect SSL
|
||||
|
||||
webmincron_title=Webmin Scheduled Functions
|
||||
webmincron_emodule=The Webmin Cron Jobs module is not installed!
|
||||
|
Reference in New Issue
Block a user