Add support for editing header_checks and mime_header_checks separately https://github.com/webmin/webmin/issues/1880

This commit is contained in:
Jamie Cameron
2023-04-04 21:52:01 -07:00
parent 4b64ef0073
commit 042e7de2f7
4 changed files with 50 additions and 9 deletions

View File

@@ -20,21 +20,30 @@ print &ui_table_start($text{'header_title'}, "width=100%", 2);
&option_mapfield("header_checks", 60);
&option_mapfield("mime_header_checks", 60);
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'opts_save'} ] ]);
# Header map contents
print &ui_hr();
if (&get_current_value("header_checks") eq "")
{
print $text{'no_map'},"<p>\n";
}
else
{
if (&get_real_value("header_checks") eq "") {
print $text{'opts_header_checks_no_map'},"<p>\n";
} else {
&generate_map_edit("header_checks", $text{'map_click'}." ".
&hlink($text{'help_map_format'}, "header"), 1,
$text{'header_name'}, $text{'header_value'});
}
# MIME header map contents
print &ui_hr();
if (&get_real_value("mime_header_checks") eq "") {
print $text{'opts_mime_header_checks_no_map'},"<p>\n";
} else {
&generate_map_edit("mime_header_checks", $text{'map_click'}." ".
&hlink($text{'help_map_format'}, "header"), 1,
$text{'header_name'}, $text{'header_value'});
}
&ui_print_footer("", $text{'index_return'});

View File

@@ -639,7 +639,10 @@ searchq_none=No queued messages found.
header_title=Header Checks
header_ecannot=You are not allowed to edit header checks
header_eregexp=The header checks map must be in the format <tt>regexp:</tt><i>filename</i>
opts_header_checks=MIME header checking tables
opts_header_checks=Header checking tables
opts_mime_header_checks=MIME header checking tables
opts_header_checks_no_map=(No header checking map is currently defined. Define a map first, then you can edit it)
opts_mime_header_checks_no_map=(No MIME header checking map is currently defined. Define a map first, then you can edit it)
header_name=Regular expression
header_value=Action for matches
header_discard=Discard (with log message..)

View File

@@ -694,6 +694,12 @@ sub regenerate_header_table
&regenerate_any_table("header_checks");
}
# regenerate_mime_header_table()
sub regenerate_mime_header_table
{
&regenerate_any_table("mime_header_checks");
}
# regenerate_body_table()
sub regenerate_body_table
{
@@ -1617,6 +1623,24 @@ if ($_[1]->{'value'}) {
return $rv;
}
# Functions for editing the mime_header_checks map nicely
sub edit_name_mime_header_checks
{
return &edit_name_header_checks(@_);
}
sub parse_name_mime_header_checks
{
return &parse_name_header_checks(@_);
}
sub edit_value_mime_header_checks
{
return &edit_value_header_checks(@_);
}
sub parse_value_mime_header_checks
{
return &parse_value_header_checks(@_);
}
# Functions for editing the body_checks map (same as header_checks)
sub edit_name_body_checks
{

View File

@@ -19,15 +19,20 @@ $access{'header'} || &error($text{'header_ecannot'});
&lock_postfix_files();
&before_save();
$in{'header_checks'} =~ /^(regexp|pcre):\/\S+$/ ||
$in{'header_checks_def'} ||
$in{'header_checks'} =~ /^(regexp|pcre):\/\S+$/ ||
&error($text{'header_eregexp'});
$in{'mime_header_checks_def'} ||
$in{'mime_header_checks'} =~ /^(regexp|pcre):\/\S+$/ ||
&error($text{'header_eregexp'});
&save_options(\%in);
&ensure_map("header_checks");
&ensure_map("mime_header_checks");
&after_save();
&unlock_postfix_files();
&regenerate_header_table();
&regenerate_mime_header_table();
$err = &reload_postfix();
&error($err) if ($err);