-
-
Notifications
You must be signed in to change notification settings - Fork 117
/
Copy pathvalidate.cgi
executable file
·78 lines (70 loc) · 1.83 KB
/
validate.cgi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/usr/local/bin/perl
# Do the validation
require './virtual-server-lib.pl';
&ReadParse();
&error_setup($text{'newvalidate_err'});
&can_use_validation() || &error($text{'newvalidate_ecannot'});
# Check and parse inputs
if ($in{'servers_def'}) {
@doms = &list_visible_domains();
}
else {
foreach $id (split(/\0/, $in{'servers'})) {
$d = &get_domain($id);
if ($d) {
&can_edit_domain($d) ||
&error($text{'newvalidate_ecannot'});
push(@doms, $d)
}
}
}
@doms || &error($text{'newvalidate_edoms'});
if ($in{'features_def'}) {
@feats = ( @validate_features, &list_feature_plugins() );
}
else {
@feats = split(/\0/, $in{'features'});
}
@feats || &error($text{'newvalidate_efeats'});
&ui_print_header(undef, $text{'newvalidate_title'}, "");
&$first_print($text{'newvalidate_doing'});
&$indent_print();
# Do it
foreach my $d (@doms) {
# Call all the feature validators
@errs = ( );
$count = 0;
foreach $f (@feats) {
next if (!$d->{$f});
if (&indexof($f, &list_feature_plugins()) < 0) {
# Core feature
next if (!$config{$f});
$vfunc = "validate_$f";
$err = &$vfunc($d);
$name = $text{'feature_'.$f};
}
else {
# Plugin feature
$err = &plugin_call($f, "feature_validate", $d);
$name = &plugin_call($f, "feature_name");
}
push(@errs, "$name : $err") if ($err);
$count++;
}
# Print message, if anything done
if ($count) {
&$first_print("<b>".&show_domain_name($d).
($d->{'disabled'} ?
" [$text{'enable_disabled'}]" : '')."</b>");
if (@errs) {
&$second_print("<font color=#ff0000> —",join("<br> —\n", @errs),"</font>");
}
else {
&$second_print("$text{'newvalidate_good'}");
}
}
}
&$outdent_print();
&$second_print("$text{'setup_done'}");
&ui_print_footer("", $text{'index_return'},
"edit_newvalidate.cgi", $text{'newvalidate_return'});