diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-04-28 22:42:21 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-04-28 22:57:07 +0200 |
commit | ada4aeb0681445b89459a202b5fa1a46f0a7950e (patch) | |
tree | ff80a38d31c4093ba6ad30867c5c4e85b6bc32f6 | |
parent | 0e8e963d73e61c7666f9ec4efa98c1a277c72af9 (diff) | |
download | guix-ada4aeb0681445b89459a202b5fa1a46f0a7950e.tar.gz |
installer: Fix handling of user password mismatches.
Previously, if we had a password mismatch, the 'password' field would end up containing a <user> record instead of the actual password. * gnu/installer/newt/user.scm (confirm-password): Make TRY-AGAIN optional and adjust docstring. (run-user-add-page): Move 'confirm-password' call one level higher.
-rw-r--r-- | gnu/installer/newt/user.scm | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/gnu/installer/newt/user.scm b/gnu/installer/newt/user.scm index 7c646c1ae8..deab056e0c 100644 --- a/gnu/installer/newt/user.scm +++ b/gnu/installer/newt/user.scm @@ -115,25 +115,23 @@ REAL-NAME, and HOME-DIRECTORY as the initial values in the form." (begin (error-page) (run-user-add-page)) - (user - (name name) - (real-name real-name) - (home-directory home-directory) - (password - (confirm-password password - (lambda () - (run-user-add-page - #:name name - #:real-name real-name - #:home-directory - home-directory))))))))))) + (let ((password (confirm-password password))) + (if password + (user + (name name) + (real-name real-name) + (home-directory home-directory) + (password password)) + (run-user-add-page #:name name + #:real-name real-name + #:home-directory + home-directory))))))))) (lambda () (destroy-form-and-pop form))))))) -(define (confirm-password password try-again) +(define* (confirm-password password #:optional (try-again (const #f))) "Ask the user to confirm PASSWORD, a possibly empty string. Call TRY-AGAIN, -a thunk, if the confirmation doesn't match PASSWORD. Return the confirmed -password." +a thunk, if the confirmation doesn't match PASSWORD, and return its result." (define confirmation (run-input-page (G_ "Please confirm the password.") (G_ "Password confirmation required") |