mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Do not crash on empty --setattr, --getattr, --addattr
Also the unused `append` argument from _convert_2_dict. https://fedorahosted.org/freeipa/ticket/2680
This commit is contained in:
committed by
Martin Kosek
parent
0206dbe795
commit
abef5e8c02
@@ -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:
|
||||
|
||||
@@ -39,7 +39,8 @@ class test_attr(Declarative):
|
||||
dict(
|
||||
desc='Create %r' % user1,
|
||||
command=(
|
||||
'user_add', [user1], dict(givenname=u'Test', sn=u'User1')
|
||||
'user_add', [user1], dict(givenname=u'Test', sn=u'User1',
|
||||
setattr=None)
|
||||
),
|
||||
expected=dict(
|
||||
value=user1,
|
||||
|
||||
Reference in New Issue
Block a user