mirror of
https://github.com/webmin/webmin.git
synced 2026-02-03 14:13:29 +00:00
53 lines
1.1 KiB
Perl
Executable File
53 lines
1.1 KiB
Perl
Executable File
#!/usr/bin/perl
|
|
# Create, update or delete a rules section separator
|
|
|
|
require './itsecur-lib.pl';
|
|
&can_edit_error("rules");
|
|
&ReadParse();
|
|
@rules = &list_rules();
|
|
if (!$in{'new'}) {
|
|
$rule = $rules[$in{'idx'}];
|
|
}
|
|
&lock_itsecur_files();
|
|
|
|
if ($in{'delete'}) {
|
|
# Just take out rule
|
|
splice(@rules, $in{'idx'}, 1);
|
|
}
|
|
else {
|
|
# Validate and store inputs
|
|
&error_setup($text{'sep_err'});
|
|
$in{'desc'} || &error($text{'sep_edesc'});
|
|
$rule->{'desc'} = $in{'desc'};
|
|
$rule->{'sep'} = 1;
|
|
|
|
if ($in{'new'}) {
|
|
# Add to list at chosen position
|
|
if ($in{'pos'} == -1) {
|
|
push(@rules, $rule);
|
|
}
|
|
else {
|
|
splice(@rules, $in{'pos'}, 0, $rule);
|
|
}
|
|
}
|
|
else {
|
|
# Maybe change position
|
|
foreach $r (grep { $_ ne $rule } @rules) {
|
|
if ($r->{'index'} == $in{'pos'}) {
|
|
push(@newrules, $rule);
|
|
}
|
|
push(@newrules, $r);
|
|
}
|
|
push(@newrules, $rule) if ($in{'pos'} == -1);
|
|
@rules = @newrules;
|
|
}
|
|
}
|
|
|
|
# Save rules list
|
|
&save_rules(@rules);
|
|
&unlock_itsecur_files();
|
|
&remote_webmin_log($in{'delete'} ? "delete" : $in{'new'} ? "create" : "update",
|
|
"sep", $rule->{'index'}+1, $rule);
|
|
&redirect("list_rules.cgi");
|
|
|