allow adminuser to be an email address

master
Joey Hess 2015-05-13 23:07:29 -04:00
parent 239cd95db7
commit 22339188e7
2 changed files with 27 additions and 25 deletions

View File

@ -154,31 +154,33 @@ sub import (@) {
foreach my $admin (@{$config{adminuser}}) {
next if defined IkiWiki::openiduser($admin);
# Prompt for password w/o echo.
my ($password, $password2);
system('stty -echo 2>/dev/null');
local $|=1;
print "\n\nCreating wiki admin $admin ...\n";
for (;;) {
print "Choose a password: ";
chomp($password=<STDIN>);
print "\n";
print "Confirm password: ";
chomp($password2=<STDIN>);
if (! defined IkiWiki::emailuser($admin)) {
# Prompt for password w/o echo.
my ($password, $password2);
system('stty -echo 2>/dev/null');
local $|=1;
print "\n\nCreating wiki admin $admin ...\n";
for (;;) {
print "Choose a password: ";
chomp($password=<STDIN>);
print "\n";
print "Confirm password: ";
chomp($password2=<STDIN>);
last if $password2 eq $password;
print "Password mismatch.\n\n";
}
print "\n\n\n";
system('stty sane 2>/dev/null');
last if $password2 eq $password;
print "Password mismatch.\n\n";
}
print "\n\n\n";
system('stty sane 2>/dev/null');
if (IkiWiki::userinfo_setall($admin, { regdate => time }) &&
IkiWiki::Plugin::passwordauth::setpassword($admin, $password)) {
IkiWiki::userinfo_set($admin, "email", $config{adminemail}) if defined $config{adminemail};
}
else {
error("problem setting up $admin user");
if (IkiWiki::userinfo_setall($admin, { regdate => time }) &&
IkiWiki::Plugin::passwordauth::setpassword($admin, $password)) {
IkiWiki::userinfo_set($admin, "email", $config{adminemail}) if defined $config{adminemail};
}
else {
error("problem setting up $admin user");
}
}
}

View File

@ -18,7 +18,7 @@ our $wikiname_short=IkiWiki::Setup::Automator::sanitize_wikiname($wikiname);
our $rcs=IkiWiki::Setup::Automator::ask(
gettext("What revision control system to use?"), "git");
our $admin=IkiWiki::Setup::Automator::ask(
gettext("Which user (wiki account or openid) will be admin?"), $ENV{USER});
gettext("Which user (wiki account, openid, or email) will be admin?"), $ENV{USER});
use Net::Domain q{hostfqdn};
our $domain=hostfqdn() || IkiWiki::Setup::Automator::ask(
gettext("What is the domain name of the web server?"), "");