X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/e943812dc9802d134f2d9627a6c4fc94fe9c26f9..b0b87d15843db10b6ff7a4e30ff8bf110e229075:/IkiWiki/Plugin/passwordauth.pm?ds=sidebyside diff --git a/IkiWiki/Plugin/passwordauth.pm b/IkiWiki/Plugin/passwordauth.pm index f3f1aa4bf..e0c0a3b0e 100644 --- a/IkiWiki/Plugin/passwordauth.pm +++ b/IkiWiki/Plugin/passwordauth.pm @@ -7,13 +7,34 @@ use strict; use IkiWiki 2.00; sub import { #{{{ - hook(type => "formbuilder_setup", id => "passwordauth", - call => \&formbuilder_setup); - hook(type => "formbuilder", id => "passwordauth", - call => \&formbuilder); + hook(type => "getsetup", id => "passwordauth", "call" => \&getsetup); + hook(type => "formbuilder_setup", id => "passwordauth", call => \&formbuilder_setup); + hook(type => "formbuilder", id => "passwordauth", call => \&formbuilder); hook(type => "sessioncgi", id => "passwordauth", call => \&sessioncgi); } # }}} +sub getsetup () { #{{{ + return + plugin => { + safe => 1, + rebuild => 0, + }, + account_creation_password => { + type => "string", + example => "s3cr1t", + description => "a password that must be entered when signing up for an account", + safe => 1, + rebuild => 0, + }, + password_cost => { + type => "integer", + example => 8, + description => "cost of generating a password using Authen::Passphrase::BlowfishCrypt", + safe => 1, + rebuild => 0, + }, +} #}}} + # Checks if a string matches a user's password, and returns true or false. sub checkpassword ($$;$) { #{{{ my $user=shift; @@ -88,7 +109,9 @@ sub formbuilder_setup (@) { #{{{ if ($form->submitted eq "Register" || $form->submitted eq "Create Account") { $form->field(name => "confirm_password", type => "password"); - $form->field(name => "account_creation_password", type => "password") if (length $config{account_creation_password}); + $form->field(name => "account_creation_password", type => "password") + if (defined $config{account_creation_password} && + length $config{account_creation_password}); $form->field(name => "email", size => 50); $form->title("register"); $form->text(""); @@ -125,7 +148,8 @@ sub formbuilder_setup (@) { #{{{ shift eq $config{account_creation_password}; }, required => 1, - ) if (length $config{account_creation_password}); + ) if (defined $config{account_creation_password} && + length $config{account_creation_password}); $form->field( name => "email", validate => "EMAIL", @@ -259,7 +283,9 @@ sub formbuilder (@) { #{{{ error($@) if $@; sendmail( To => IkiWiki::userinfo_get($user_name, "email"), - From => "$config{wikiname} admin <$config{adminemail}>", + From => "$config{wikiname} admin <". + (defined $config{adminemail} ? $config{adminemail} : "") + .">", Subject => "$config{wikiname} information", Message => $template->output, ) or error(gettext("Failed to send mail"));