ikiwiki/IkiWiki/Plugin/emailauth.pm

58 lines
972 B
Perl

#!/usr/bin/perl
# Ikiwiki email address as login
package IkiWiki::Plugin::emailauth;
use warnings;
use strict;
use IkiWiki 3.00;
sub import {
hook(type => "getsetup", id => "emailauth", "call" => \&getsetup);
IkiWiki::loadplugin("loginselector");
IkiWiki::Plugin::loginselector::register_login_plugin(
"emailauth",
\&email_setup,
\&email_check_input,
\&email_auth,
);
}
sub getsetup () {
return
plugin => {
safe => 1,
rebuild => 0,
section => "auth",
},
}
sub email_setup ($$) {
my $q=shift;
my $template=shift;
return 1;
}
sub email_check_input ($) {
my $cgi=shift;
defined $cgi->param('do')
&& $cgi->param("do") eq "signin"
&& defined $cgi->param('Email_entry')
&& length $cgi->param('Email_entry');
}
sub email_auth ($$$) {
my $cgi=shift;
my $session=shift;
my $errordisplayer=shift;
unless ($cgi->param('Email_entry') =~ /.\@./) {
$errordisplayer->("Invalid email address.");
return;
}
error "EMAIL AUTH";
}
1