summaryrefslogtreecommitdiffstats
path: root/ipa_server
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-11-17 15:27:08 -0700
committerJason Gerard DeRose <jderose@redhat.com>2008-11-17 15:27:08 -0700
commit42bf555a3ad1f1777b26a4092b49512b9360c882 (patch)
tree82ec2c847b81f44a9e060957a505e05c6f70a273 /ipa_server
parente7ec4131589d5d387c4257bca76e91a17ad7e1a3 (diff)
downloadfreeipa-42bf555a3ad1f1777b26a4092b49512b9360c882.tar.gz
freeipa-42bf555a3ad1f1777b26a4092b49512b9360c882.tar.xz
freeipa-42bf555a3ad1f1777b26a4092b49512b9360c882.zip
Started updated user_* commands to use textui
Diffstat (limited to 'ipa_server')
-rw-r--r--ipa_server/plugins/b_ldap.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/ipa_server/plugins/b_ldap.py b/ipa_server/plugins/b_ldap.py
index 0f923935..fe329919 100644
--- a/ipa_server/plugins/b_ldap.py
+++ b/ipa_server/plugins/b_ldap.py
@@ -209,9 +209,29 @@ class ldap(CrudBackend):
# The CRUD operations
+ def strip_none(self, kw):
+ """
+ Remove any None values present in the LDAP attribute dict.
+ """
+ for (key, value) in kw.iteritems():
+ if value is None:
+ continue
+ if type(value) in (list, tuple):
+ value = filter(
+ lambda v: type(v) in (str, unicode, bool, int, float),
+ value
+ )
+ if len(value) > 0:
+ yield (key, value)
+ else:
+ assert type(value) in (str, unicode, bool, int, float)
+ yield (key, value)
+
def create(self, **kw):
if servercore.entry_exists(kw['dn']):
raise errors.DuplicateEntry("entry already exists")
+ kw = dict(self.strip_none(kw))
+
entry = ipaldap.Entry(kw['dn'])