aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Fripost/Prompt.pm
diff options
context:
space:
mode:
authorGuilhem Moulin <guilhem.moulin@fripost.org>2012-04-15 22:04:31 +0200
committerGuilhem Moulin <guilhem.moulin@fripost.org>2012-04-15 22:04:31 +0200
commit033af5c7de65c2ba38c45ba649ad29823bfb7141 (patch)
tree5b9f93fe22dd61c71b0a711c0fefa8e91d1d6c31 /lib/Fripost/Prompt.pm
parentb1fe11c6c9ae79bd8714ba7e627cff1665198fd4 (diff)
fripost-adduser: LDAP ready
Diffstat (limited to 'lib/Fripost/Prompt.pm')
-rwxr-xr-xlib/Fripost/Prompt.pm19
1 files changed, 8 insertions, 11 deletions
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;