diff options
Diffstat (limited to 'ipa_server/plugins/b_ldap.py')
-rw-r--r-- | ipa_server/plugins/b_ldap.py | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/ipa_server/plugins/b_ldap.py b/ipa_server/plugins/b_ldap.py index b40a957f8..dca9b3fea 100644 --- a/ipa_server/plugins/b_ldap.py +++ b/ipa_server/plugins/b_ldap.py @@ -48,6 +48,16 @@ class ldap(CrudBackend): self.api.env.basedn, ) + def make_group_dn(self, cn): + """ + Construct user dn from cn. + """ + return 'cn=%s,%s,%s' % ( + self.dn.escape_dn_chars(cn), + self.api.env.container_group, + self.api.env.basedn, + ) + def find_entry_dn(self, key_attribute, primary_key, object_type=None): """ Find an existing entry's dn from an attribute @@ -113,7 +123,8 @@ class ldap(CrudBackend): for k in kw: entry.setValues(k, kw[k]) - return servercore.add_entry(entry) + servercore.add_entry(entry) + return self.retrieve(entry.dn) def retrieve(self, dn, attributes=None): return servercore.get_entry_by_dn(dn, attributes) @@ -126,7 +137,9 @@ class ldap(CrudBackend): for k in kw: entry.setValues(k, kw[k]) - return servercore.update_entry(entry.toDict()) + servercore.update_entry(entry.toDict()) + + return self.retrieve(dn) def delete(self, dn): return servercore.delete_entry(dn) |