summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2016-08-08 13:09:39 +0200
committerDavid Kupka <dkupka@redhat.com>2016-08-10 08:51:39 +0200
commite9c1d21b9fec17ab13894885eb1238631ecc43e5 (patch)
tree1bb437d0fd79385b8b028af766bf097f80ef0a18
parent771dea5c6bf1cca7b3756d2f1be48f613de14ceb (diff)
downloadfreeipa-e9c1d21b9fec17ab13894885eb1238631ecc43e5.tar.gz
freeipa-e9c1d21b9fec17ab13894885eb1238631ecc43e5.tar.xz
freeipa-e9c1d21b9fec17ab13894885eb1238631ecc43e5.zip
parameters: move the `confirm` kwarg to Param
Whether a parameter is treated like password is determined by the `password` class attribute defined in the Param class. Whether the CLI will asks for confirmation of a password parameter depends on the value of the `confirm` kwarg of the Password class. Move the `confirm` kwarg from the Password class to the Param class, so that it can be used by any Param subclass which has the `password` class attribute set to True. This fixes confirmation of the --key option of otptoken-add, which is a Bytes subclass with `password` set to True. https://fedorahosted.org/freeipa/ticket/6174 Reviewed-By: Martin Basti <mbasti@redhat.com> Reviewed-By: David Kupka <dkupka@redhat.com>
-rw-r--r--ipaclient/remote_plugins/schema.py2
-rw-r--r--ipalib/parameters.py6
-rw-r--r--ipaserver/plugins/otptoken.py4
3 files changed, 3 insertions, 9 deletions
diff --git a/ipaclient/remote_plugins/schema.py b/ipaclient/remote_plugins/schema.py
index a215452ea..c06d6d278 100644
--- a/ipaclient/remote_plugins/schema.py
+++ b/ipaclient/remote_plugins/schema.py
@@ -167,7 +167,7 @@ class _SchemaPlugin(object):
elif key in ('cli_metavar',
'cli_name'):
kwargs[key] = str(value)
- elif key == 'confirm' and issubclass(cls, Password):
+ elif key == 'confirm':
kwargs[key] = value
elif key == 'default':
default = value
diff --git a/ipalib/parameters.py b/ipalib/parameters.py
index 1581b7dca..6917c8d4f 100644
--- a/ipalib/parameters.py
+++ b/ipalib/parameters.py
@@ -377,6 +377,7 @@ class Param(ReadOnly):
parameter is not `required`
- sortorder: used to sort a list of parameters for Command. See
`Command.finalize()` for further information
+ - confirm: if password, ask for confirmation
"""
# This is a dummy type so that most of the functionality of Param can be
@@ -418,6 +419,7 @@ class Param(ReadOnly):
('cli_metavar', str, None),
('no_convert', bool, False),
('deprecated', bool, False),
+ ('confirm', bool, True),
# The 'default' kwarg gets appended in Param.__init__():
# ('default', self.type, None),
@@ -1511,10 +1513,6 @@ class Password(Str):
password = True
- kwargs = Str.kwargs + (
- ('confirm', bool, True),
- )
-
def _convert_scalar(self, value, index=None):
if isinstance(value, (tuple, list)) and len(value) == 2:
(p1, p2) = value
diff --git a/ipaserver/plugins/otptoken.py b/ipaserver/plugins/otptoken.py
index 56b8c911b..39012e2f9 100644
--- a/ipaserver/plugins/otptoken.py
+++ b/ipaserver/plugins/otptoken.py
@@ -79,10 +79,6 @@ class OTPTokenKey(Bytes):
password = True
- kwargs = Bytes.kwargs + (
- ('confirm', bool, True),
- )
-
def _convert_scalar(self, value, index=None):
if isinstance(value, (tuple, list)) and len(value) == 2:
(p1, p2) = value