summaryrefslogtreecommitdiffstats
path: root/ipalib
diff options
context:
space:
mode:
authorPetr Viktorin <pviktori@redhat.com>2012-04-27 06:07:16 -0400
committerMartin Kosek <mkosek@redhat.com>2012-05-07 17:23:08 +0200
commitabef5e8c027bf37d9522f4d30e8e43c408251893 (patch)
tree8aa414f6cf7746f947b0509144bd70d25489c4e6 /ipalib
parent0206dbe79502dd06b9c44622ead4635e430e3620 (diff)
downloadfreeipa-abef5e8c027bf37d9522f4d30e8e43c408251893.tar.gz
freeipa-abef5e8c027bf37d9522f4d30e8e43c408251893.tar.xz
freeipa-abef5e8c027bf37d9522f4d30e8e43c408251893.zip
Do not crash on empty --setattr, --getattr, --addattr
Also the unused `append` argument from _convert_2_dict. https://fedorahosted.org/freeipa/ticket/2680
Diffstat (limited to 'ipalib')
-rw-r--r--ipalib/plugins/baseldap.py16
1 files changed, 8 insertions, 8 deletions
diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py
index 5a8013efc..e4f8cdc69 100644
--- a/ipalib/plugins/baseldap.py
+++ b/ipalib/plugins/baseldap.py
@@ -791,18 +791,18 @@ last, after all sets and adds."""),
exclude='webui',
)
- def _convert_2_dict(self, attrs, append=True):
+ def _convert_2_dict(self, attrs):
"""
Convert a string in the form of name/value pairs into a dictionary.
- The incoming attribute may be a string or a list.
- :param attrs: A list of name/value pairs
-
- :param append: controls whether this returns a list of values or a single
- value.
+ :param attrs: A list of name/value pair strings, in the "name=value"
+ format. May also be a single string, or None.
"""
+
newdict = {}
- if not type(attrs) in (list, tuple):
+ if attrs is None:
+ attrs = []
+ elif not type(attrs) in (list, tuple):
attrs = [attrs]
for a in attrs:
m = re.match("\s*(.*?)\s*=\s*(.*?)\s*$", a)
@@ -811,7 +811,7 @@ last, after all sets and adds."""),
if len(value) == 0:
# None means "delete this attribute"
value = None
- if append and attr in newdict:
+ if attr in newdict:
if type(value) in (tuple,):
newdict[attr] += list(value)
else: