#!/usr/local/bin/perl
# edit_vfile.cgi
# Display the contents of an autoresponder file and alias settings
require './virtual-server-lib.pl';
&ReadParse();
$d = &get_domain($in{'dom'});
&can_edit_domain($d) || &error($text{'aliases_ecannot'});
&can_edit_afiles() || &error($text{'vfile_ecannot'});
&ui_print_header(undef, $text{'vfile_title'}, "");
$what = $in{'alias'} ? 'alias' : 'user';
# Find the alias and its settings
if ($what eq "alias") {
@aliases = &list_domain_aliases($d);
($virt) = grep { $_->{'from'} eq $in{$what} } @aliases;
@av = &alias_type($virt->{'to'}->[$in{'idx'}]);
}
else {
@users = &list_domain_users($d);
($user) = grep { $_->{'user'} eq $in{$what} } @users;
@av = &alias_type($user->{'to'}->[$in{'idx'}]);
}
# Read the autoreply file
if (-e $in{'file'}) {
open(FILE, $in{'file'}) ||
&error(&text('rfile_eread', $in{'file'}, $d->{'user'}, $!));
while(<FILE>) {
push(@lines, $_);
}
close(FILE);
}
print &text('vfile_desc', "<tt>$in{'file'}</tt>"),"<p>\n";
print "$text{'vfile_desc2'}<p>\n";
print "<form action=save_vfile.cgi method=post enctype=multipart/form-data>\n";
print "<input type=hidden name=file value=\"$in{'file'}\">\n";
print "<input type=hidden name=dom value=\"$in{'dom'}\">\n";
print "<input type=hidden name=$what value=\"",$in{$what},"\">\n";
print "<input type=hidden name=idx value=\"$in{'idx'}\">\n";
print "<table>\n";
print "<tr> <td colspan=2><textarea name=text rows=10 cols=80>",
join("", @lines),"</textarea></td> </tr>\n";
# Show timeouts
print "<tr> <td><b>$text{'vfile_time'}</b></td>\n";
print "<td>",&ui_textbox("time", $av[2], 8)," ",$text{'vfile_secs'},
"</td> </tr>\n";
print "<tr> <td><b>$text{'vfile_num'}</b></td>\n";
print "<td>",&ui_textbox("num", $av[3], 8),"</td> </tr>\n";
# Show directory
print "<tr> <td><b>$text{'vfile_dir'}</b></td>\n";
print "<td>",&ui_opt_textbox("dir",
$av[4] eq $in{'file'}.".log" ? undef : $av[4], 30,
$text{'vfile_auto'}),"</td> </tr>\n";
# Show flag options
print "<tr> <td><b>$text{'vfile_flag'}</b></td>\n";
print "<td>",&ui_radio("flag", $av[5],
[ [ "", $text{'default'} ],
[ 1, $text{'yes'} ],
[ 0, $text{'no'} ] ]),"</td> </tr>\n";
# Show sender address
$other = $av[6] eq "" || $av[6] eq "+" || $av[6] eq "\$" ? 0 : 1;
print "<tr> <td><b>$text{'vfile_from'}</b></td>\n";
print "<td>",&ui_radio("from", $other ? "other" : $av[6],
[ [ "", $text{'default'} ],
[ "+", $text{'vfile_blank'} ],
[ "\$", $text{'vfile_to'} ],
[ "other", $text{'vfile_other'} ] ]),"\n",
&ui_textbox("other", $other ? $av[6] : undef, 20),"</td> </tr>\n";
print "</table>\n";
print "<input type=submit value=\"$text{'save'}\"> ",
"<input type=reset value=\"$text{'rfile_undo'}\">\n";
print "</form>\n";
&ui_print_footer("edit_$what.cgi?dom=$in{'dom'}&$what=$in{$what}",
$text{$what.'_return'});
syntax highlighted by Code2HTML, v. 0.9.1