guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/03: installer: Ask for confirmation of the root password.


From: guix-commits
Subject: 02/03: installer: Ask for confirmation of the root password.
Date: Thu, 25 Apr 2019 06:24:02 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 8f2b7e3cb469e3e484547bb9f4ba3d0e3a7e9ed7
Author: Ludovic Courtès <address@hidden>
Date:   Thu Apr 25 11:17:31 2019 +0200

    installer: Ask for confirmation of the root password.
    
    * gnu/installer/newt/user.scm (confirm-password): New procedure.
    (run-root-password-page): Add call to 'confirm-password'.
---
 gnu/installer/newt/user.scm | 27 ++++++++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

diff --git a/gnu/installer/newt/user.scm b/gnu/installer/newt/user.scm
index 76eb63b..7493edf 100644
--- a/gnu/installer/newt/user.scm
+++ b/gnu/installer/newt/user.scm
@@ -104,13 +104,34 @@
           (lambda ()
             (destroy-form-and-pop form)))))))
 
+(define (confirm-password password try-again)
+  "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."
+  (define confirmation
+    (run-input-page (G_ "Please confirm the password.")
+                    (G_ "Password confirmation required")
+                    #:allow-empty-input? #t
+                    #:input-flags FLAG-PASSWORD))
+
+  (if (string=? password confirmation)
+      password
+      (begin
+        (run-error-page
+         (G_ "Password mismatch, please try again.")
+         (G_ "Password error"))
+        (try-again))))
+
 (define (run-root-password-page)
   ;; TRANSLATORS: Leave "root" untranslated: it refers to the name of the
   ;; system administrator account.
-  (run-input-page (G_ "Please choose a password for the system \
+  (define password
+    (run-input-page (G_ "Please choose a password for the system \
 administrator (\"root\").")
-                  (G_ "System administrator password")
-                  #:input-flags FLAG-PASSWORD))
+                    (G_ "System administrator password")
+                    #:input-flags FLAG-PASSWORD))
+
+  (confirm-password password run-root-password-page))
 
 (define (run-user-page)
   (define (run users)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]