Skip to content

Commit 18d76ab

Browse files
committed
Sync virtuals to secondary MX after all actions
1 parent 3d20293 commit 18d76ab

File tree

100 files changed

+148
-4
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

100 files changed

+148
-4
lines changed

Diff for: IDEAS

+1-3
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,12 @@
6060
- Replicate virtusers to secondary MX
6161
- https://www.virtualmin.com/node/12894
6262
- Sendmail
63-
- Postfix
64-
- relay_recipient_maps
65-
- relay_domains
6663
- Per-domain copying
6764
- Call sync_secondary_mx_virtusers at end of all scripts that
6865
modify aliases or users?
6966
- script to re-sync all domains, and show errors
7067
- re-sync when adding a secondary MX
68+
- sync after domain deletion
7169
- wildcard support
7270
- CHANGELOG
7371
- Add to documentation

Diff for: add_script.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ if (@files == 1) {
8585
else {
8686
print &text('addscripts_done', scalar(@files)),"<p>\n";
8787
}
88+
&run_post_actions();
8889
&ui_print_footer("edit_newscripts.cgi", $text{'newscripts_return'});
8990

9091
&webmin_log("add", "scripts", scalar(@files),

Diff for: backup_sched.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ else {
164164
}
165165
&unlock_file($module_config_file);
166166
&release_lock_cron();
167+
&run_post_actions_silently();
167168

168169
# Log it
169170
$what = $sched->{'all'} ? 'all' :

Diff for: change-licence.pl

+1
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ package virtual_server;
131131
&write_env_file($virtualmin_license_file, \%lfile);
132132
&unlock_file($virtualmin_license_file);
133133
&$second_print(".. done");
134+
&run_post_actions_silently();
134135
&virtualmin_api_log(\@OLDARGV);
135136

136137
sub usage

Diff for: check.cgi

+2
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ if ($webminchanged) {
5151
# Clear cache of links
5252
&clear_links_cache();
5353

54+
&run_post_actions();
55+
5456
&webmin_log("check");
5557

5658
# Call any theme post command

Diff for: clone-domain.pl

+1
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ package virtual_server;
9191
$d->{'dom'}, $newdomain, $newuser));
9292
}
9393
$ok = &clone_virtual_server($d, $newdomain, $newuser, $newpass);
94+
&run_post_actions_silently();
9495
if ($ok) {
9596
&$second_print($text{'setup_done'});
9697
&virtualmin_api_log(\@OLDARGV, $d);

Diff for: clone.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ else {
4848
&$second_print($text{'clone_failed'});
4949
}
5050

51+
&run_post_actions();
5152
&webmin_log("clone", "domain", $d->{'dom'}, $d);
5253

5354
# Call any theme post command

Diff for: copy_cert.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ else {
7676
}
7777
}
7878

79+
&run_post_actions();
7980
&webmin_log("copycert", $in{'usermin'} ? "usermin" : "webmin");
8081

8182
&ui_print_footer(&domain_footer_link($d),

Diff for: copy_cert_dovecot.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ push(@protos, "pop3s") if (!$protos{'pop3s'} && $protos{'pop3'});
8383
# Apply Dovecot config
8484
&dovecot::apply_configuration();
8585

86+
&run_post_actions();
8687
&webmin_log("copycert", "dovecot");
8788

8889
&ui_print_footer(&domain_footer_link($d),

Diff for: copy_cert_postfix.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ elsif (!$smtps && $smtp) {
8181
# Apply Postfix config
8282
&postfix::reload_postfix();
8383

84+
&run_post_actions();
8485
&webmin_log("copycert", "postfix");
8586

8687
&ui_print_footer(&domain_footer_link($d),

Diff for: create-admin.pl

+1
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ package virtual_server;
144144
# Create the admin
145145
&create_extra_admin($admin, $d);
146146
&release_lock_webmin();
147+
&run_post_actions_silently();
147148
&virtualmin_api_log(\@OLDARGV, $d);
148149
print "Extra administrator $name created successfully\n";
149150

Diff for: create-alias.pl

+1
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ package virtual_server;
9090
&sync_alias_virtuals($d);
9191
&release_lock_mail($d);
9292
&virtualmin_api_log(\@OLDARGV, $d);
93+
&run_post_actions_silently();
9394
print "Alias for $email created successfully\n";
9495

9596
sub usage

Diff for: create-domain.pl

+1
Original file line numberDiff line numberDiff line change
@@ -747,6 +747,7 @@ package virtual_server;
747747
}
748748

749749
&virtualmin_api_log(\@OLDARGV, \%dom);
750+
&run_post_actions_silently();
750751
print "All done!\n";
751752

752753
sub usage

Diff for: create-plan.pl

+1
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ package virtual_server;
136136
# Create it
137137
&save_plan($plan);
138138
print "Created plan $plan->{'name'} with ID $plan->{'id'}\n";
139+
&run_post_actions_silently();
139140
&virtualmin_api_log(\@OLDARGV);
140141

141142
sub usage

Diff for: create-shared-address.pl

+1
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ package virtual_server;
100100
&save_shared_ips(@oldips, $ip);
101101
&unlock_file($module_config_file);
102102
print "Created shared IP address $ip\n";
103+
&run_post_actions_silently();
103104
&virtualmin_api_log(\@OLDARGV);
104105

105106
sub usage

Diff for: create-simple-alias.pl

+1
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ package virtual_server;
133133
&sync_alias_virtuals($d);
134134
&release_lock_mail($d);
135135
&write_simple_autoreply($d, $simple);
136+
&run_post_actions_silently();
136137
&virtualmin_api_log(\@OLDARGV, $d);
137138
print "Alias for $email created successfully\n";
138139

Diff for: create-template.pl

+1
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ package virtual_server;
8282
}
8383

8484
print "Created template $tmplname with ID $tmpl->{'id'}\n";
85+
&run_post_actions_silently();
8586
&virtualmin_api_log(\@OLDARGV);
8687

8788
sub usage

Diff for: delete-admin.pl

+1
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ package virtual_server;
5252
$admin || &usage("Extra administrator $name does not exist in this virtual server");
5353
&delete_extra_admin($admin, $d);
5454
&release_lock_webmin();
55+
&run_post_actions_silently();
5556
&virtualmin_api_log(\@OLDARGV, $d);
5657
print "Extra administrator $name deleted successfully\n";
5758

Diff for: delete-alias.pl

+1
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ package virtual_server;
6868
&sync_alias_virtuals($d);
6969
&release_lock_mail($d);
7070
&virtualmin_api_log(\@OLDARGV, $d);
71+
&run_post_actions_silently();
7172
print "Alias for $email deleted successfully\n";
7273

7374
sub usage

Diff for: delete-plan.pl

+1
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ package virtual_server;
6060
# Delete it
6161
&delete_plan($plan);
6262
print "Deleted plan $plan->{'name'} with ID $plan->{'id'}\n";
63+
&run_post_actions_silently();
6364
&virtualmin_api_log(\@OLDARGV);
6465

6566
sub usage

Diff for: delete-shared-address.pl

+1
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ package virtual_server;
6969
&save_shared_ips(@oldips);
7070
&unlock_file($module_config_file);
7171
print "Removed shared IP address $ip\n";
72+
&run_post_actions_silently();
7273
&virtualmin_api_log(\@OLDARGV);
7374

7475
sub usage

Diff for: delete-template.pl

+1
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ package virtual_server;
6060
# Delete it
6161
&delete_template($tmpl);
6262
print "Deleted template $tmpl->{'name'} with ID $tmpl->{'id'}\n";
63+
&run_post_actions_silently();
6364
&virtualmin_api_log(\@OLDARGV);
6465

6566
sub usage

Diff for: delete_admins.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ foreach $name (@del) {
1818
&delete_extra_admin($admin, $d);
1919
}
2020
&release_lock_webmin();
21+
&run_post_actions_silently();
2122
&webmin_log("delete", "admins", scalar(@del));
2223
&redirect("list_admins.cgi?dom=$d->{'id'}");
2324

Diff for: delete_aliases.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ foreach $a (@del) {
2525
}
2626
&sync_alias_virtuals($d);
2727
&release_lock_mail($d);
28+
&run_post_actions_silently();
2829
&webmin_log("delete", "aliases", scalar(@del),
2930
{ 'dom' => $d->{'dom'} });
3031
&redirect("list_aliases.cgi?dom=$in{'dom'}&show=$in{'show'}");

Diff for: delete_domain.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ else {
103103
&theme_post_save_domain(\%dom, 'delete');
104104
}
105105

106+
&run_post_actions();
106107
&webmin_log("delete", "domain", $d->{'dom'}, $d);
107108
&ui_print_footer("", $text{'index_return'});
108109
}

Diff for: delete_plans.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ foreach $d (@d) {
2222
}
2323

2424
# Log and return
25+
&run_post_actions_silently();
2526
&webmin_log("delete", "plans", scalar(@d));
2627
&redirect("edit_newplan.cgi");
2728

Diff for: delete_postgrey.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ foreach $i (sort { $b <=> $a } @d) {
1818
}
1919
&release_lock_postgrey();
2020
&apply_postgrey_data();
21+
&run_post_actions_silently();
2122

2223
&webmin_log('deletes', 'postgrey', scalar(@d), { 'type' => $in{'type'} });
2324

Diff for: delete_records.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ if ($in{'delete'}) {
4141
$err = &post_records_change($d, $recs, $file);
4242
&release_lock_dns($d);
4343
&reload_bind_records($d);
44+
&run_post_actions_silently();
4445
&webmin_log("delete", "records", $d->{'dom'},
4546
{ 'count' => scalar(@d) });
4647
&error(&text('records_epost', $err)) if ($err);

Diff for: delete_scheds.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ foreach $sid (@d) {
1616
&delete_scheduled_backup($sched);
1717
}
1818

19+
&run_post_actions_silently();
1920
&webmin_log("delete", "scheds", scalar(@d));
2021
&redirect("list_sched.cgi");
2122

Diff for: delete_tmpls.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ if ($in{'confirm'}) {
2222
foreach $tmpl (@deltmpls) {
2323
&delete_template($tmpl);
2424
}
25+
&run_post_actions_silently();
2526
&webmin_log("delete", "templates", scalar(@d));
2627
&redirect("edit_newtmpl.cgi");
2728
}

Diff for: disable_clamd.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ if ($ok) {
1717
}
1818
&$outdent_print();
1919

20+
&run_post_actions();
2021
&ui_print_footer("edit_newsv.cgi", $text{'sv_return'});
2122

2223

Diff for: disable_postgrey.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ $err = &check_postgrey();
1010
&obtain_lock_postgrey();
1111
&disable_postgrey();
1212
&release_lock_postgrey();
13+
&run_post_actions();
1314
&webmin_log("disable", "postgrey");
1415

1516
&ui_print_footer("postgrey.cgi", $text{'postgrey_return'});

Diff for: disable_scripts.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ foreach $s (&list_scripts()) {
1616

1717
# Save it
1818
&save_scripts_available(\@scripts);
19+
&run_post_actions_silently();
1920
&webmin_log("enable", "scripts");
2021
&redirect("edit_newscripts.cgi?mode=enable");
2122

Diff for: disable_spamd.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ if ($ok) {
1616
&webmin_log("disable", "spamd");
1717
}
1818
&$outdent_print();
19+
&run_post_actions();
1920

2021
&ui_print_footer("edit_newsv.cgi", $text{'sv_return'});
2122

Diff for: domain_setup.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,7 @@ if (defined($in{'content'}) && !$in{'content_def'} && $dom{'web'}) {
443443
}
444444
}
445445

446+
&run_post_actions();
446447
&webmin_log("create", "domain", $dom{'dom'}, \%dom);
447448

448449
# Call any theme post command

Diff for: enable_clamd.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ if ($ok) {
1616
else {
1717
print "<b>",$text{'sv_notenabled'},"</b><p>\n";
1818
}
19+
&run_post_actions();
1920

2021
&ui_print_footer("edit_newsv.cgi", $text{'sv_return'});
2122

Diff for: enable_postgrey.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ $err = &check_postgrey();
1010
&obtain_lock_postgrey();
1111
&enable_postgrey();
1212
&release_lock_postgrey();
13+
&run_post_actions();
1314
&webmin_log("enable", "postgrey");
1415

1516
&ui_print_footer("postgrey.cgi", $text{'postgrey_return'});

Diff for: enable_spamd.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ if ($ok) {
1616
else {
1717
print "<b>",$text{'sv_notenabled'},"</b><p>\n";
1818
}
19+
&run_post_actions();
1920

2021
&ui_print_footer("edit_newsv.cgi", $text{'sv_return'});
2122

Diff for: feature-mail.pl

+18
Original file line numberDiff line numberDiff line change
@@ -1481,6 +1481,7 @@ sub delete_virtuser
14811481
}
14821482
}
14831483
&execute_after_virtuser($_[0], 'DELETE_ALIAS');
1484+
&register_sync_secondary_virtuser($_[0]);
14841485
}
14851486

14861487
# modify_virtuser(&old, &new)
@@ -1661,6 +1662,8 @@ sub modify_virtuser
16611662
$_[1]->{'alias'} = $alias;
16621663
}
16631664
&execute_after_virtuser($_[1], 'MODIFY_ALIAS');
1665+
&register_sync_secondary_virtuser($_[0]);
1666+
&register_sync_secondary_virtuser($_[1]);
16641667
}
16651668

16661669
# create_virtuser(&virtuser)
@@ -1815,6 +1818,7 @@ sub create_virtuser
18151818
$_[0]->{'alias'} = $alias;
18161819
}
18171820
&execute_after_virtuser($_[0], 'CREATE_ALIAS');
1821+
&register_sync_secondary_virtuser($_[0]);
18181822
}
18191823

18201824
# sync_secondary_virtusers(&domain, [&only-servers])
@@ -1906,6 +1910,20 @@ sub update_secondary_mx_virtusers
19061910
}
19071911
}
19081912

1913+
# register_sync_secondary_virtuser(&virtuser)
1914+
# Register a call to sync_secondary_virtusers after everything is done for the
1915+
# domain is one alias
1916+
sub register_sync_secondary_virtuser
1917+
{
1918+
local ($virt) = @_;
1919+
if ($virt->{'from'} =~ /\@(\S+)$/) {
1920+
local $d = &get_domain_by("dom", $1);
1921+
if ($d) {
1922+
&register_post_action(\&sync_secondary_virtusers, $d);
1923+
}
1924+
}
1925+
}
1926+
19091927
# needs_alias(list..)
19101928
sub needs_alias
19111929
{

Diff for: import_database.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,6 @@ foreach $tn (split(/\0/, $in{'import'})) {
2424
}
2525
&save_domain($d);
2626
&refresh_webmin_user($d);
27+
&run_post_actions_silently();
2728
&redirect("list_databases.cgi?dom=$in{'dom'}");
2829

Diff for: mailusers.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ print $text{'newnotify_done'},"<p>\n";
3737
foreach $t (@to) {
3838
print "<tt>$t</tt><br>\n";
3939
}
40+
&run_post_actions();
4041
&webmin_log("mailusers", undef, undef, { 'to' => join("\0", @to) });
4142

4243
&ui_print_footer("list_users.cgi?dom=$in{'dom'}", $text{'users_return'},

Diff for: manual_records_save.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ if ($err && !$olderr) {
4141
&post_records_change($d, $recs, $file);
4242
&release_lock_dns($d);
4343
&reload_bind_records($d);
44+
&run_post_actions_silently();
4445
&webmin_log("manual", "records", $d->{'dom'},
4546
{ 'count' => scalar(@$recs) });
4647
&redirect("list_records.cgi?dom=$in{'dom'}");

Diff for: mass_aedit.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ foreach $simple (@created) {
173173
&sync_alias_virtuals($d);
174174
print "<p>\n";
175175
print &text('aedit_complete', $count, $ecount, $mcount, $dcount),"<br>\n";
176+
&run_post_actions();
176177
&webmin_log("manual", "aliases", $count);
177178

178179
&ui_print_footer("list_aliases.cgi?dom=$in{'dom'}", $text{'aliases_return'},

Diff for: mass_scripts.cgi

+1
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ if ($in{'confirm'}) {
131131
&cleanup_tempnames();
132132
}
133133
}
134+
&run_post_actions();
134135
&webmin_log("upgrade", "scripts", scalar(@sinfos));
135136
}
136137
else {

0 commit comments

Comments
 (0)