diff options
author | Rob Crittenden <rcritten@redhat.com> | 2008-10-14 17:46:36 -0400 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2008-10-14 21:28:06 -0400 |
commit | 1c3f81852cb8337e2305f968be5bd8165997d27e (patch) | |
tree | d46ece432b9912982ca909613857351dd28f8b13 /ipa_server/plugins | |
parent | ff88652a405c7fd9236a9b1d80dd8955a9ca056d (diff) | |
download | freeipa-1c3f81852cb8337e2305f968be5bd8165997d27e.tar.gz freeipa-1c3f81852cb8337e2305f968be5bd8165997d27e.tar.xz freeipa-1c3f81852cb8337e2305f968be5bd8165997d27e.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) |