On second though, you might want a wide-open wiki with some locked
pages that cannot be edited online.
So, the right thing for lockedit to do when there are no auth plugins is
to just say the page cannot be edited.
sub import {
hook(type => "getsetup", id => "lockedit", call => \&getsetup);
sub import {
hook(type => "getsetup", id => "lockedit", call => \&getsetup);
- hook(type => "checkconfig", id => "lockedit", call => \&checkconfig);
hook(type => "canedit", id => "lockedit", call => \&canedit);
}
hook(type => "canedit", id => "lockedit", call => \&canedit);
}
-sub checkconfig () {
- if (! exists $IkiWiki::hooks{auth}) {
- error gettext("lockedit plugin is enabled, but no authentication plugins are enabled");
- }
-}
-
sub canedit ($$) {
my $page=shift;
my $cgi=shift;
sub canedit ($$) {
my $page=shift;
my $cgi=shift;
user => $session->param("name"),
ip => $ENV{REMOTE_ADDR},
)) {
user => $session->param("name"),
ip => $ENV{REMOTE_ADDR},
)) {
- if (! defined $user ||
- ! IkiWiki::userinfo_get($session->param("name"), "regdate")) {
+ if ((! defined $user ||
+ ! IkiWiki::userinfo_get($session->param("name"), "regdate")) &&
+ exists $IkiWiki::hooks{auth}) {
return sub { IkiWiki::needsignin($cgi, $session) };
}
else {
return sub { IkiWiki::needsignin($cgi, $session) };
}
else {
(Sjoerd)
* signinedit: Auto-disable the plugin when all authentication methods
are disabled.
(Sjoerd)
* signinedit: Auto-disable the plugin when all authentication methods
are disabled.
- * lockedit: Detect if no authentication plugins are enabled, and
- die with an error message as this configuration does not make sense.
-- Joey Hess <joeyh@debian.org> Mon, 04 Jan 2010 12:53:24 -0500
-- Joey Hess <joeyh@debian.org> Mon, 04 Jan 2010 12:53:24 -0500