better approach for cgi upload disabling

Make it a config setting, this way subtle load order issues don't come into
play. (As much?)
master
Joey Hess 2008-07-01 13:43:32 -04:00
parent 5aee8d937d
commit 7cd40ea4eb
3 changed files with 11 additions and 5 deletions

View File

@ -88,6 +88,7 @@ sub defaultconfig () { #{{{
account_creation_password => "",
prefix_directives => 0,
hardlink => 0,
cgi_disable_uploads => 1,
} #}}}
sub checkconfig () { #{{{

View File

@ -6,8 +6,6 @@ use IkiWiki;
use IkiWiki::UserInfo;
use open qw{:utf8 :std};
use Encode;
use CGI;
$CGI::DISABLE_UPLOADS=1;
package IkiWiki;
@ -668,6 +666,10 @@ sub cgi (;$$) { #{{{
my $q=shift;
my $session=shift;
eval q{use CGI};
error($@) if $@;
$CGI::DISABLE_UPLOADS=$config{cgi_disable_uploads};
if (! $q) {
binmode(STDIN);
$q=CGI->new;

View File

@ -4,18 +4,21 @@ package IkiWiki::Plugin::attachment;
use warnings;
use strict;
use IkiWiki 2.00;
use CGI;
$CGI::DISABLE_UPLOADS=0;
# TODO move to admin prefs
$config{valid_attachments}="(*.mp3 and maxsize(15mb)) or (!ispage() and maxsize(50kb))";
sub import { #{{{
hook(type => "checkconfig", id => "attachment", call => \&checkconfig);
hook(type => "formbuilder_setup", id => "attachment", call => \&formbuilder_setup);
hook(type => "formbuilder", id => "attachment", call => \&formbuilder);
} # }}}
sub formbuilder_setup { #{{{
sub checkconfig () { #{{{
$config{cgi_disable_uploads}=0;
} #}}}
sub formbuilder_setup (@) { #{{{
my %params=@_;
my $form=$params{form};