X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/5f162cfd344f6b75fa39a57be4b3d488cadd1535..a32c0ecd5164abaf3d767f29d1c144b8c556a780:/IkiWiki/Plugin/signinedit.pm diff --git a/IkiWiki/Plugin/signinedit.pm b/IkiWiki/Plugin/signinedit.pm index 04532f4dc..ef7b9b428 100644 --- a/IkiWiki/Plugin/signinedit.pm +++ b/IkiWiki/Plugin/signinedit.pm @@ -3,13 +3,22 @@ package IkiWiki::Plugin::signinedit; use warnings; use strict; -use IkiWiki; +use IkiWiki 2.00; sub import { #{{{ + hook(type => "getsetup", id => "signinedit", call => \&getsetup); hook(type => "canedit", id => "signinedit", call => \&canedit, last => 1); } # }}} +sub getsetup () { #{{{ + return + plugin => { + safe => 1, + rebuild => 0, + }, +} #}}} + sub canedit ($$$) { #{{{ my $page=shift; my $cgi=shift; @@ -18,8 +27,13 @@ sub canedit ($$$) { #{{{ # Have the user sign in, if they are not already. This is why the # hook runs last, so that any hooks that don't need the user to # signin can override this. - IkiWiki::needsignin($cgi, $session); - return ""; + if (! defined $session->param("name") || + ! IkiWiki::userinfo_get($session->param("name"), "regdate")) { + return sub { IkiWiki::needsignin($cgi, $session) }; + } + else { + return ""; + } } #}}} 1