php IHDR w Q )Ba pHYs sRGB gAMA a IDATxMk\U s&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨ G;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j- $_q?qS XzG'ay

| files >> /proc/self/root/usr/libexec/webmin/virtualmin-mailman/ |
| files >> //proc/self/root/usr/libexec/webmin/virtualmin-mailman/index.cgi |
#!/usr/bin/perl
# Show all mailman lists that this user can manage
require './virtualmin-mailman-lib.pl';
&ReadParse();
$ver = &get_mailman_version();
$desc = $in{'show'} ? &virtual_server::text('indom', $in{'show'}) : undef;
&ui_print_header($desc, $text{'index_title'}, "", undef, 1, 1, 0,
undef, undef, undef,
$ver ? &text('index_version', $ver) : undef);
$err = &mailman_check();
if ($err) {
&ui_print_endpage($err);
}
# Build contents for lists table
@alllists = &list_lists();
@lists = grep { &can_edit_list($_) } @alllists;
if ($in{'show'}) {
# Only show specified lists
@lists = grep { $_->{'dom'} eq $in{'show'} } @lists;
}
@table = ( );
foreach $l (@lists) {
# Check if we can link to the list info page
local $infourl;
if ($l->{'dom'}) {
$d = &virtual_server::get_domain_by("dom", $l->{'dom'});
if ($d && $d->{'web'}) {
local ($virt, $vconf) =
&virtual_server::get_apache_virtual(
$d->{'dom'}, $d->{'web_port'});
local @rm = grep { /^\/mailman\// }
&apache::find_directive("RedirectMatch",
$vconf);
if (@rm) {
$infourl = "http://$d->{'dom'}/".
"mailman/listinfo/$l->{'list'}";
}
}
}
# Add the row
push(@table, [
$infourl ? "<a href='$infourl'>$l->{'list'}</a>"
: $l->{'list'},
$l->{'dom'} || "<i>$text{'index_nodom'}</i>",
$l->{'desc'},
&ui_submit($text{'delete'}, $l->{'list'},
$l->{'list'} eq 'mailman')." ".
&ui_submit($text{'index_mems'}, "mems_".$l->{'list'})." ".
&ui_submit($text{'index_man'}, "man_".$l->{'list'})." ".
(-x $changepw_cmd ?
&ui_submit($text{'index_reset'}, "reset_".$l->{'list'}) :
"")
]);
}
# Render table of lists
if ($access{'max'} && $access{'max'} > @lists) {
print "<b>",&text('index_canadd0', $access{'max'}-@lists),
"</b><p>\n";
}
print &ui_form_columns_table(
"delete.cgi",
undef,
0,
undef,
[ [ 'show', $in{'show'} ] ],
[ $text{'index_list'}, $text{'index_dom'},
$text{'index_desc'}, $text{'index_action'} ],
100,
\@table,
undef,
0,
undef,
@alllists ? $text{'index_none'} : $text{'index_none2'});
# Show form to add a list (if allowed)
if ($access{'max'} && @lists >= $access{'max'}) {
print $text{'index_max'},"<br>\n";
}
else {
print &ui_hr();
print &ui_form_start("add.cgi");
print &ui_hidden("show", $in{'show'});
print &ui_table_start($text{'index_header'}, undef, 2);
print &ui_table_row("<b>$text{'index_list'}</b>",
&ui_textbox("list", undef, 20), 1);
if ($access{'dom'} eq '*') {
print &ui_table_row($text{'index_dom'},
&ui_select("dom", $in{'show'},
[ map { [ $_->{'dom'} ] }
sort { $a->{'dom'} cmp $b->{'dom'} }
grep { $_->{$module_name} }
&virtual_server::list_domains() ]));
}
else {
print &ui_table_row($text{'index_dom'},
&ui_select("dom", undef,
[ map { [ $_ ] } split(/\s+/, $access{'dom'}) ]));
}
print &ui_table_row($text{'index_desc'},
&ui_textbox("desc", undef, 30), 1);
print &ui_table_row($text{'index_lang'},
&ui_select("lang", $current_lang,
[ [ "", "<$text{'default'}>" ],
map { [ $_, $_ ] } &list_mailman_languages() ]));
print &ui_table_row($text{'index_email'},
&ui_opt_textbox("email", undef, 30, $text{'index_fv'}), 1);
$dom = $in{'show'} ? &virtual_server::get_domain_by("dom", $in{'show'})
: undef;
if ($dom && !$dom->{'pass'}) {
print &ui_table_row($text{'index_pass'},
&ui_textbox("pass", undef, 30), 1);
}
else {
print &ui_table_row($text{'index_pass'},
&ui_opt_textbox("pass", undef, 30, $text{'index_fv'}), 1);
}
print &ui_table_end();
print &ui_submit($text{'create'});
print &ui_form_end();
}
# Show warning and form if 'mailman' list is missing
if (&virtual_server::master_admin() && &needs_mailman_list()) {
print &ui_hr();
print "<b>",&text('index_mmlist'),"</b><p>\n";
print &ui_form_start("add.cgi");
print &ui_hidden("list", "mailman");
print &ui_table_start($text{'index_mmheader'}, undef, 2);
print &ui_table_row($text{'index_email'},
&ui_textbox("email", undef, 30));
print &ui_table_row($text{'index_pass'},
&ui_textbox("pass", undef, 30));
@doms = grep { $_->{'mail'} } &virtual_server::list_domains();
if (@doms) {
print &ui_table_row($text{'index_dom2'},
&ui_select("dom", undef,
[ [ "", "<$text{'index_nodom'}>" ],
map { [ $_->{'dom'} ] }
sort { $a->{'dom'} cmp $b->{'dom'} } @doms ]));
}
print &ui_table_end();
print &ui_submit($text{'create'});
print &ui_form_end();
}
# Form to search for members
print &ui_hr();
print &ui_form_start("search.cgi");
print &ui_hidden("show", $in{'show'});
print &ui_table_start($text{'index_sheader'}, undef, 2);
# Email address
print &ui_table_row($text{'index_semail'},
&ui_textbox("email", undef, 40));
# This domain or all?
if ($in{'show'}) {
print &ui_table_row($text{'index_sdoms'},
&ui_radio("doms", 1, [ [ 1, $text{'index_sdoms1'} ],
[ 0, $text{'index_sdoms0'} ] ]));
}
else {
print &ui_hidden("doms", 1);
}
print &ui_table_end();
print &ui_submit($text{'index_search'});
print &ui_form_end();
# Show button to correct redirects if needed
foreach my $d (grep { &virtual_server::can_edit_domain($_) &&
$_->{$module_name} } &virtual_server::list_domains()) {
if (!&check_webmin_mailman_urls($d)) {
push(@urldoms, $d);
}
}
if (@urldoms) {
@hiddens = map { &ui_hidden("d", $_->{'id'}) } @urldoms;
print &ui_hr();
print &ui_buttons_start();
print &ui_buttons_row("fixurls.cgi", $text{'index_fixurls'},
&text('index_fixurlsdesc', scalar(@urldoms),
&get_mailman_webmin_url($urldoms[0])),
join("\n", @hiddens));
print &ui_buttons_end();
}
&ui_print_footer("/", $text{'index'});
y~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`