summaryrefslogtreecommitdiffstats
path: root/ipalib/cli.py
diff options
context:
space:
mode:
authorRob Crittenden <rcritten@redhat.com>2011-09-16 15:08:17 -0400
committerMartin Kosek <mkosek@redhat.com>2011-10-04 15:16:15 +0200
commitbd227b356280f54f48bc01901275833a51f87fd7 (patch)
tree2a6746e8032067843ce020daa5c642fd46a57e29 /ipalib/cli.py
parent28603e0c3ac20390a860347afb7a6ed976166e03 (diff)
downloadfreeipa-bd227b356280f54f48bc01901275833a51f87fd7.tar.gz
freeipa-bd227b356280f54f48bc01901275833a51f87fd7.tar.xz
freeipa-bd227b356280f54f48bc01901275833a51f87fd7.zip
Require current password when using passwd to change your own password.
Add a new required parameter, current_password. In order to ask this first I added a new parameter option, sortorder. The lower the value the earlier it will be prompted for. I also changed the way autofill works. It will attempt to get the default and if it doesn't get anything will continue prompting interactively. Since current_password is required I'm passing a magic value that means changing someone else's password. We need to pass something since current_password is required. The python-ldap passwd command doesn't seem to use the old password at all so I do a simple bind to validate it. https://fedorahosted.org/freeipa/ticket/1808
Diffstat (limited to 'ipalib/cli.py')
-rw-r--r--ipalib/cli.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/ipalib/cli.py b/ipalib/cli.py
index 0a7d1a4cf..86365e7ca 100644
--- a/ipalib/cli.py
+++ b/ipalib/cli.py
@@ -1048,12 +1048,14 @@ class cli(backend.Executioner):
for param in cmd.params():
if (param.required and param.name not in kw) or \
(param.alwaysask and honor_alwaysask) or self.env.prompt_all:
+ if param.autofill:
+ kw[param.name] = param.get_default(**kw)
+ if param.name in kw and kw[param.name] is not None:
+ continue
if param.password:
kw[param.name] = self.Backend.textui.prompt_password(
param.label, param.confirm
)
- elif param.autofill:
- kw[param.name] = param.get_default(**kw)
else:
default = param.get_default(**kw)
error = None