Show get_attachment.html syntax highlighted
% # vim: set syntax=mason:
<%args>
$file
$type
$subtype
</%args>
<%init>
my $user = Apache::SiteControl->getCurrentUser($r);
my $logger = Log::Log4perl->get_logger('alphamail');
my $prefix = $config->get("message_tmpdir", '/tmp') . "/" .
$user->getAttribute('imap') . "_" . $user->getUsername();
my $username = $user->getUsername();
if($file !~ m/^\Q$prefix\E\/msg[-\d]*\/[^\/]*$/i || $file =~ m!/\.\./!) {
$logger->logcroak("Security Violation! $username attempted to view $file. Prefix was $prefix");
}
my $sf = $file;
$sf =~ s!^.*/([^/]+)$!$1!;
$logger->debug("Getting attachment $file ($type/$subtype)");
$r->content_type("$type/$subtype");
$r->header_out('Content-Disposition' => qq(attachment; filename="$sf"));
$r->send_http_header;
open DATA, "<$file" or logger->logcroak("Could not open file: $file");
my $line;
while($line = <DATA>) {
$m->print($line);
}
close DATA;
</%init>
See more files for this project here