<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">#!/usr/bin/perl
package IkiWiki::Plugin::signinedit;

use warnings;
use strict;
use IkiWiki 2.00;

sub import {
	hook(type =&gt; "getsetup", id =&gt; "signinedit", call =&gt; \&amp;getsetup);
	hook(type =&gt; "canedit", id =&gt; "signinedit", call =&gt; \&amp;canedit,
	     last =&gt; 1);
}

sub getsetup () {
	return
		plugin =&gt; {
			safe =&gt; 1,
			rebuild =&gt; 0,
		},
}

sub canedit ($$$) {
	my $page=shift;
	my $cgi=shift;
	my $session=shift;

	# 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.
        if (! defined $session-&gt;param("name") ||
            ! IkiWiki::userinfo_get($session-&gt;param("name"), "regdate")) {
		return sub { IkiWiki::needsignin($cgi, $session) };
	}
	else {
		return "";
	}
}

1
</pre></body></html>