| Server IP : 134.236.49.22 / Your IP : 216.73.216.114 Web Server : Apache/2.2.15 (Fedora) System : Linux km10.dyndns.org 2.6.31.5-127.fc12.i686.PAE #1 SMP Sat Nov 7 21:25:57 EST 2009 i686 User : apache ( 48) PHP Version : 5.3.3 Disable Function : NONE MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/libexec/webmin/majordomo/ |
Upload File : |
#!/usr/bin/perl
# save_subs.cgi
# Save subscription options
require './majordomo-lib.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_list(\%access, $in{'name'}) || &error($text{'edit_ecannot'});
$list = &get_list($in{'name'}, &get_config());
&lock_file($list->{'config'});
$conf = &get_list_config($list->{'config'});
&save_list_directive($conf, $list->{'config'}, "subscribe_policy",
$in{'subscribe_policy'}.$in{'subscribe_policy_c'});
&save_list_directive($conf, $list->{'config'}, "unsubscribe_policy",
$in{'unsubscribe_policy'});
&save_choice($conf, $list->{'config'}, "welcome");
&save_choice($conf, $list->{'config'}, "strip");
&save_choice($conf, $list->{'config'}, "announcements");
&save_choice($conf, $list->{'config'}, "administrivia");
&save_opt($conf, $list->{'config'}, "admin_passwd", \&check_pass);
&save_choice($conf, $list->{'config'}, "moderate");
&save_opt($conf, $list->{'config'}, "moderator", \&check_email);
&save_opt($conf, $list->{'config'}, "approve_passwd", \&check_pass);
$in{'owner'} =~ /^\S+$/ || &error($text{'subs_eowner'});
$in{'approval'} =~ /^\S+$/ || &error($text{'subs_eapproval'});
$aliases_files = &get_aliases_file();
&foreign_call($aliases_module, "lock_alias_files", $aliases_files);
@aliases = &foreign_call($aliases_module, "list_aliases", $aliases_files);
foreach $a (@aliases) {
$listowner = $a if (lc($a->{'name'}) eq lc("$in{'name'}-owner"));
$ownerlist = $a if (lc($a->{'name'}) eq lc("owner-$in{'name'}"));
$approval = $a if (lc($a->{'name'}) eq lc("$in{'name'}-approval"));
}
&foreign_call('sendmail', 'modify_alias', $listowner,
{ 'name' => "$in{'name'}-owner",
'values' => [ $in{'owner'} ],
'enabled' => 1 }) if ($listowner);
&foreign_call('sendmail', 'modify_alias', $ownerlist,
{ 'name' => "owner-$in{'name'}",
'values' => [ $in{'owner'} ],
'enabled' => 1 }) if ($ownerlist);
&foreign_call('sendmail', 'modify_alias', $approval,
{ 'name' => "$in{'name'}-approval",
'values' => [ $in{'approval'} ],
'enabled' => 1 }) if ($approval);
&foreign_call($aliases_module, "unlock_alias_files", $aliases_files);
&flush_file_lines();
&unlock_file($list->{'config'});
&webmin_log("subs", undef, $in{'name'});
&redirect("edit_list.cgi?name=$in{'name'}");
sub check_email
{
return $_[0] =~ /^\S+$/ ? undef : $text{'subs_emoderator'};
}
sub check_pass
{
return $_[0] =~ /^\S+$/ ? undef : $text{'subs_epasswd'};
}