X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/ddef0d3170b1543e6ed580c7ce00849e3ed1550f..102f29e500df27a79b2895067f8a6a31bb2df7e6:/IkiWiki.pm diff --git a/IkiWiki.pm b/IkiWiki.pm index 0746ef24b..d11ceb896 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -115,7 +115,7 @@ sub getsetup () { #{{{ openid signinedit lockedit conditional recentchanges parentlinks}], description => "plugins to enable by default", - safe => 1, + safe => 0, rebuild => 1, }, add_plugins => { @@ -284,6 +284,13 @@ sub getsetup () { #{{{ safe => 0, # regexp rebuild => 1, }, + banned_users => { + type => "string", + default => [], + description => "users who cannot use the wiki", + safe => 1, + rebuild => 0, + }, wiki_file_prune_regexps => { type => "internal", default => [qr/(^|\/)\.\.(\/|$)/, qr/^\./, qr/\/\./, @@ -412,13 +419,6 @@ sub checkconfig () { #{{{ $config{wikistatedir}="$config{srcdir}/.ikiwiki" unless exists $config{wikistatedir}; - - if ($config{rcs}) { - loadplugin($config{rcs}); - } - else { - loadplugin("norcs"); - } if (defined $config{umask}) { umask(possibly_foolish_untaint($config{umask})); @@ -433,14 +433,14 @@ sub listplugins () { #{{{ my %ret; foreach my $dir (@INC, $config{libdir}) { - next unless defined $dir; + next unless defined $dir && length $dir; foreach my $file (glob("$dir/IkiWiki/Plugin/*.pm")) { my ($plugin)=$file=~/.*\/(.*)\.pm$/; $ret{$plugin}=1; } } foreach my $dir ($config{libdir}, "$installdir/lib/ikiwiki") { - next unless defined $dir; + next unless defined $dir && length $dir; foreach my $file (glob("$dir/plugins/*")) { $ret{basename($file)}=1 if -x $file; } @@ -450,11 +450,21 @@ sub listplugins () { #{{{ } #}}} sub loadplugins () { #{{{ - if (defined $config{libdir}) { + if (defined $config{libdir} && length $config{libdir}) { unshift @INC, possibly_foolish_untaint($config{libdir}); } loadplugin($_) foreach @{$config{default_plugins}}, @{$config{add_plugins}}; + + if ($config{rcs}) { + if (exists $IkiWiki::hooks{rcs}) { + error(gettext("cannot use multiple rcs plugins")); + } + loadplugin($config{rcs}); + } + if (! exists $IkiWiki::hooks{rcs}) { + loadplugin("norcs"); + } run_hooks(getopt => sub { shift->() }); if (grep /^-/, @ARGV) {