Blob Blame History Raw
From 79a6f63f5b57622f1d3871b86ce8f048803d0914 Mon Sep 17 00:00:00 2001
From: Marin Atanasov Nikolov <dnaeon@gmail.com>
Date: Wed, 25 Mar 2020 10:16:37 +0200
Subject: [PATCH] Use a passwordbox widget when providing the login credentials

See #26
---
 src/pvc/core.py | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/pvc/core.py b/src/pvc/core.py
index 48260c5..9041c86 100644
--- a/src/pvc/core.py
+++ b/src/pvc/core.py
@@ -98,7 +98,6 @@ def login(self):
         elements = [
             pvc.widget.form.FormElement(label='Hostname'),
             pvc.widget.form.FormElement(label='Username'),
-            pvc.widget.form.FormElement(label='Password', attributes=0x1),
         ]
 
         form = pvc.widget.form.Form(
@@ -121,6 +120,17 @@ def login(self):
                 )
                 continue
 
+            code, password = self.dialog.passwordbox(
+                text='Password for {}'.format(fields['Username']),
+                insecure=True,
+            )
+            if code in (self.dialog.CANCEL, self.dialog.ESC):
+                self.dialog.msgbox(
+                    title='Error',
+                    text='You need to provide a password, please try again.\n',
+                )
+                continue
+
             self.dialog.infobox(
                 title='Establishing Connection',
                 text='Connecting to {} ...'.format(fields['Hostname']),
@@ -129,7 +139,7 @@ def login(self):
             self.agent = VConnector(
                 host=fields['Hostname'],
                 user=fields['Username'],
-                pwd=fields['Password'],
+                pwd=password,
             )
 
             try: