minor improvements

master
Joey Hess 2008-06-30 23:04:37 -04:00
parent 0a37c45f32
commit 622033f5d6
1 changed files with 15 additions and 13 deletions

View File

@ -8,7 +8,7 @@ use CGI;
$CGI::DISABLE_UPLOADS=0; $CGI::DISABLE_UPLOADS=0;
# TODO move to admin prefs # TODO move to admin prefs
$config{valid_attachments}="(*.mp3 and maxsize(15mb)) or (* and maxsize(.50kb))"; $config{valid_attachments}="(*.mp3 and maxsize(15mb)) or (* and maxsize(50kb))";
sub import { #{{{ sub import { #{{{
hook(type => "formbuilder_setup", id => "attachment", call => \&formbuilder_setup); hook(type => "formbuilder_setup", id => "attachment", call => \&formbuilder_setup);
@ -49,12 +49,14 @@ sub formbuilder (@) { #{{{
error(gettext("bad attachment filename")); error(gettext("bad attachment filename"));
} }
# Check that the attachment matches the configured # Use a pagespec to test that the attachment is valid.
# pagespec. if (exists $config{valid_attachments} &&
my $result=pagespec_match($filename, $config{valid_attachments}, length $config{valid_attachments}) {
tempfile => $tempfile); my $result=pagespec_match($filename, $config{valid_attachments},
if (! $result) { tempfile => $tempfile);
error(gettext("attachment rejected")." ($result)"); if (! $result) {
error(gettext("attachment rejected")." ($result)");
}
} }
my $fh=$q->upload('attachment'); my $fh=$q->upload('attachment');
@ -75,20 +77,20 @@ sub parsesize { #{{{
no warnings; no warnings;
my $base=$size+0; # force to number my $base=$size+0; # force to number
use warnings; use warnings;
my $exponent=1; my $multiple=1;
if ($size=~/kb?$/i) { if ($size=~/kb?$/i) {
$exponent=10; $multiple=2**10;
} }
elsif ($size=~/mb?$/i) { elsif ($size=~/mb?$/i) {
$exponent=20; $multiple=2**20;
} }
elsif ($size=~/gb?$/i) { elsif ($size=~/gb?$/i) {
$exponent=30; $multiple=2**30;
} }
elsif ($size=~/tb?$/i) { elsif ($size=~/tb?$/i) {
$exponent=40; $multiple=2**40;
} }
return $base * 2**$exponent; return $base * $multiple;
} #}}} } #}}}
sub match_maxsize ($$;@) { #{{{ sub match_maxsize ($$;@) { #{{{