diff options
author | Rob Crittenden <rcritten@redhat.com> | 2008-10-14 17:46:36 -0400 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2008-10-14 17:46:36 -0400 |
commit | 30664cde88b70f478d75a768426db5f655c5f867 (patch) | |
tree | 16f277bcd99f8e6ad2810c2386a0126b9f569c20 /ipa_server/plugins | |
parent | 9788800aa41146551baee6d36314a20203fd9d20 (diff) | |
download | freeipa-30664cde88b70f478d75a768426db5f655c5f867.tar.gz freeipa-30664cde88b70f478d75a768426db5f655c5f867.tar.xz freeipa-30664cde88b70f478d75a768426db5f655c5f867.zip |
Move some functionality from user-add to the backend ldap create function
Diffstat (limited to 'ipa_server/plugins')
-rw-r--r-- | ipa_server/plugins/b_ldap.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/ipa_server/plugins/b_ldap.py b/ipa_server/plugins/b_ldap.py index 69c2aeb58..600f1c86f 100644 --- a/ipa_server/plugins/b_ldap.py +++ b/ipa_server/plugins/b_ldap.py @@ -25,7 +25,11 @@ This wraps the python-ldap bindings. import ldap as _ldap from ipalib import api +from ipalib import errors from ipalib.crud import CrudBackend +from ipa_server import servercore +from ipa_server import ipaldap +import ldap class ldap(CrudBackend): @@ -46,6 +50,18 @@ class ldap(CrudBackend): ) def create(self, **kw): - return kw + if servercore.entry_exists(kw['dn']): + raise errors.DuplicateEntry("entry already exists") + + entry = ipaldap.Entry(kw['dn']) + + # dn isn't allowed to be in the entry itself + del kw['dn'] + + # Fill in our new entry + for k in kw: + entry.setValues(k, kw[k]) + + return servercore.add_entry(entry) api.register(ldap) |