X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/ee1ad53c4c2710aa7ded61bdc56f3a8cce514f22..1d55c73d419666b2c936f517ef14ab2262ba8a4f:/IkiWiki/Plugin/signinedit.pm?ds=inline

diff --git a/IkiWiki/Plugin/signinedit.pm b/IkiWiki/Plugin/signinedit.pm
index 08932e2f6..ef7b9b428 100644
--- a/IkiWiki/Plugin/signinedit.pm
+++ b/IkiWiki/Plugin/signinedit.pm
@@ -6,10 +6,19 @@ use strict;
 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