]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki.pm
add description_html
[ikiwiki.git] / IkiWiki.pm
index 0746ef24ba36c00b6b7d3b340440f611609f622e..d11ceb8963b2c2d123c623e99aa3a3ea8f59a130 100644 (file)
@@ -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) {