Re: [Freeipa-devel] [PATCH] Prompt correctly for required Password params.

2010-11-30 Thread Rob Crittenden

Pavel Zuna wrote:

Required Password params were prompted for like any other non-Password
params, resulting in the password being displayed on the command line
and there was no confirmation.

Ticket #361

Pavel


Ack, pushed to master

rob

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


[Freeipa-devel] [PATCH] Prompt correctly for required Password params.

2010-11-24 Thread Pavel Zuna
Required Password params were prompted for like any other non-Password params, 
resulting in the password being displayed on the command line and there was no 
confirmation.


Ticket #361

Pavel
From f8451a7b94f226f3e5b4181f464de52e2dfbad2d Mon Sep 17 00:00:00 2001
From: Pavel Zuna pz...@redhat.com
Date: Wed, 24 Nov 2010 08:01:31 -0500
Subject: [PATCH] Prompt correctly for required Password params.

Ticket #361
---
 ipalib/cli.py |   23 +--
 1 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/ipalib/cli.py b/ipalib/cli.py
index 41bee7a..3120e01 100644
--- a/ipalib/cli.py
+++ b/ipalib/cli.py
@@ -515,7 +515,7 @@ class textui(backend.Backend):
 try:
 if sys.stdin.isatty():
 while True:
-pw1 = getpass.getpass('%s: ' % label)
+pw1 = getpass.getpass(u'%s: ' % unicode(label))
 pw2 = getpass.getpass(
 unicode(_('Enter %(label)s again to verify: ') % dict(label=label))
 )
@@ -887,16 +887,15 @@ class cli(backend.Executioner):
 ``self.env.prompt_all`` is ``True``, this method will prompt for any
 params that have a missing values, even if the param is optional.
 
-for param in cmd.params():
-if param.password and (
-kw.get(param.name, False) is True or param.name in cmd.args
-):
-kw[param.name] = \
-self.Backend.textui.prompt_password(param.cli_name)
-elif param.name not in kw:
-if param.autofill:
+for param in cmd.params(): 
+if (param.required and param.name not in kw) or self.env.prompt_all:
+if param.password:
+kw[param.name] = self.Backend.textui.prompt_password(
+param.label
+)
+elif param.autofill:
 kw[param.name] = param.get_default(**kw)
-elif param.required or self.env.prompt_all:
+else:
 default = param.get_default(**kw)
 error = None
 while True:
@@ -910,6 +909,10 @@ class cli(backend.Executioner):
 break
 except ValidationError, e:
 error = e.error
+elif param.password and kw.get(param.name, False) is True:
+kw[param.name] = self.Backend.textui.prompt_password(
+param.label
+)
 
 def load_files(self, cmd, kw):
 
-- 
1.7.1.1

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel