From 033af5c7de65c2ba38c45ba649ad29823bfb7141 Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Sun, 15 Apr 2012 22:04:31 +0200 Subject: fripost-adduser: LDAP ready --- lib/Fripost/Prompt.pm | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) (limited to 'lib/Fripost/Prompt.pm') diff --git a/lib/Fripost/Prompt.pm b/lib/Fripost/Prompt.pm index d90d42d..95ea7ea 100755 --- a/lib/Fripost/Prompt.pm +++ b/lib/Fripost/Prompt.pm @@ -15,7 +15,7 @@ use Data::Dumper; use Email::Valid; use Exporter; use IO::Prompt; -use String::MkPasswd qw/mkpasswd/; +use Fripost::Password qw/mkpasswd/; our @EXPORT = qw(confirm confirm_or_abort fix_username prompt_email prompt_password); our @ISA = qw(Exporter); @@ -49,20 +49,20 @@ sub prompt_email { my ($msg, $is_username) = @_; $msg //= "Enter email: "; my $email; - while (not defined $email) { + do { $email = prompt $msg; if ($is_username) { $email = fix_username($email); } - if (!Email::Valid->address($email)) { + unless (Email::Valid->address($email)) { undef $email; say "This is not a valid e-mail address. Try again." } } + until (defined $email); return $email; - } sub prompt_password { @@ -71,7 +71,7 @@ sub prompt_password { $msg2 //= "Enter new password again (blank for random): "; my $password; - while (not defined $password) { + do { $password = prompt $msg, -e => '*'; my $confirm = prompt $msg2, -e => '*'; unless ($password eq $confirm) { @@ -79,13 +79,10 @@ sub prompt_password { say "Passwords do not match"; } } + until (defined $password); - if (!length $password) { - $password = mkpasswd( - -length => 10, - -minnum => 2, - -minspecial => 2, - ); + if ($password eq '') { + $password = mkpasswd(); say "Using password: $password"; } return $password; -- cgit v1.2.3