summaryrefslogtreecommitdiffstats
path: root/ipa_server/plugins/b_ldap.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-10-14 15:45:57 -0600
committerJason Gerard DeRose <jderose@redhat.com>2008-10-14 15:45:57 -0600
commit0ebdbaa4502f70350cf116cd9a1496a012a834df (patch)
treed46ece432b9912982ca909613857351dd28f8b13 /ipa_server/plugins/b_ldap.py
parentff88652a405c7fd9236a9b1d80dd8955a9ca056d (diff)
parent30664cde88b70f478d75a768426db5f655c5f867 (diff)
downloadfreeipa.git-0ebdbaa4502f70350cf116cd9a1496a012a834df.tar.gz
freeipa.git-0ebdbaa4502f70350cf116cd9a1496a012a834df.tar.xz
freeipa.git-0ebdbaa4502f70350cf116cd9a1496a012a834df.zip
Merge branch 'master' of git://git.engineering.redhat.com/users/rcritten/freeipa2
Diffstat (limited to 'ipa_server/plugins/b_ldap.py')
-rw-r--r--ipa_server/plugins/b_ldap.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/ipa_server/plugins/b_ldap.py b/ipa_server/plugins/b_ldap.py
index 69c2aeb5..600f1c86 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)