mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Enable LDAPObject subclasses to disable DN normalization in their methods.
This commit is contained in:
parent
671bb9c978
commit
18349dda0f
@ -62,6 +62,7 @@ class LDAPObject(Object):
|
|||||||
|
|
||||||
parent_object = ''
|
parent_object = ''
|
||||||
container_dn = ''
|
container_dn = ''
|
||||||
|
normalize_dn = True
|
||||||
object_name = 'entry'
|
object_name = 'entry'
|
||||||
object_name_plural = 'entries'
|
object_name_plural = 'entries'
|
||||||
object_class = []
|
object_class = []
|
||||||
@ -217,7 +218,7 @@ class LDAPCreate(CallbackInterface, crud.Create):
|
|||||||
)
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
ldap.add_entry(dn, entry_attrs)
|
ldap.add_entry(dn, entry_attrs, normalize=self.obj.normalize_dn)
|
||||||
except errors.NotFound:
|
except errors.NotFound:
|
||||||
parent = self.obj.parent_object
|
parent = self.obj.parent_object
|
||||||
if parent:
|
if parent:
|
||||||
@ -234,7 +235,9 @@ class LDAPCreate(CallbackInterface, crud.Create):
|
|||||||
)
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
(dn, entry_attrs) = ldap.get_entry(dn, attrs_list)
|
(dn, entry_attrs) = ldap.get_entry(
|
||||||
|
dn, attrs_list, normalize=self.obj.normalize_dn
|
||||||
|
)
|
||||||
except errors.NotFound:
|
except errors.NotFound:
|
||||||
self.obj.handle_not_found(*keys)
|
self.obj.handle_not_found(*keys)
|
||||||
|
|
||||||
@ -292,7 +295,9 @@ class LDAPRetrieve(LDAPQuery):
|
|||||||
dn = callback(self, ldap, dn, attrs_list, *keys, **options)
|
dn = callback(self, ldap, dn, attrs_list, *keys, **options)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
(dn, entry_attrs) = ldap.get_entry(dn, attrs_list)
|
(dn, entry_attrs) = ldap.get_entry(
|
||||||
|
dn, attrs_list, normalize=self.obj.normalize_dn
|
||||||
|
)
|
||||||
except errors.NotFound:
|
except errors.NotFound:
|
||||||
self.obj.handle_not_found(*keys)
|
self.obj.handle_not_found(*keys)
|
||||||
|
|
||||||
@ -358,7 +363,9 @@ class LDAPUpdate(LDAPQuery, crud.Update):
|
|||||||
"""
|
"""
|
||||||
if 'addattr' in options:
|
if 'addattr' in options:
|
||||||
try:
|
try:
|
||||||
(dn, old_entry) = ldap.get_entry(dn, attrs_list)
|
(dn, old_entry) = ldap.get_entry(
|
||||||
|
dn, attrs_list, normalize=self.obj.normalize_dn
|
||||||
|
)
|
||||||
except errors.NotFound:
|
except errors.NotFound:
|
||||||
self.obj.handle_not_found(*keys)
|
self.obj.handle_not_found(*keys)
|
||||||
attrlist = get_attributes(options['addattr'])
|
attrlist = get_attributes(options['addattr'])
|
||||||
@ -371,12 +378,14 @@ class LDAPUpdate(LDAPQuery, crud.Update):
|
|||||||
entry_attrs[attr] = old_entry[attr]
|
entry_attrs[attr] = old_entry[attr]
|
||||||
|
|
||||||
try:
|
try:
|
||||||
ldap.update_entry(dn, entry_attrs)
|
ldap.update_entry(dn, entry_attrs, normalize=self.obj.normalize_dn)
|
||||||
except errors.NotFound:
|
except errors.NotFound:
|
||||||
self.obj.handle_not_found(*keys)
|
self.obj.handle_not_found(*keys)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
(dn, entry_attrs) = ldap.get_entry(dn, attrs_list)
|
(dn, entry_attrs) = ldap.get_entry(
|
||||||
|
dn, attrs_list, normalize=self.obj.normalize_dn
|
||||||
|
)
|
||||||
except errors.NotFound:
|
except errors.NotFound:
|
||||||
raise errors.MidairCollision(
|
raise errors.MidairCollision(
|
||||||
format=_('the entry was deleted while being modified')
|
format=_('the entry was deleted while being modified')
|
||||||
@ -429,7 +438,10 @@ class LDAPDelete(LDAPQuery):
|
|||||||
else:
|
else:
|
||||||
for (dn_, entry_attrs) in subentries:
|
for (dn_, entry_attrs) in subentries:
|
||||||
delete_subtree(dn_)
|
delete_subtree(dn_)
|
||||||
ldap.delete_entry(base_dn)
|
try:
|
||||||
|
ldap.delete_entry(base_dn, normalize=self.obj.normalize_dn)
|
||||||
|
except errors.NotFound:
|
||||||
|
self.obj.handle_not_found(*keys)
|
||||||
|
|
||||||
delete_subtree(dn)
|
delete_subtree(dn)
|
||||||
|
|
||||||
@ -546,7 +558,9 @@ class LDAPAddMember(LDAPModMember):
|
|||||||
)
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
(dn, entry_attrs) = ldap.get_entry(dn, attrs_list)
|
(dn, entry_attrs) = ldap.get_entry(
|
||||||
|
dn, attrs_list, normalize=self.obj.normalize_dn
|
||||||
|
)
|
||||||
except errors.NotFound:
|
except errors.NotFound:
|
||||||
self.obj.handle_not_found(*keys)
|
self.obj.handle_not_found(*keys)
|
||||||
|
|
||||||
@ -634,7 +648,9 @@ class LDAPRemoveMember(LDAPModMember):
|
|||||||
)
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
(dn, entry_attrs) = ldap.get_entry(dn, attrs_list)
|
(dn, entry_attrs) = ldap.get_entry(
|
||||||
|
dn, attrs_list, normalize=self.obj.normalize_dn
|
||||||
|
)
|
||||||
except errors.NotFound:
|
except errors.NotFound:
|
||||||
self.obj.handle_not_found(*keys)
|
self.obj.handle_not_found(*keys)
|
||||||
|
|
||||||
@ -723,7 +739,7 @@ class LDAPSearch(CallbackInterface, crud.Search):
|
|||||||
filter, attrs_list, base_dn, scope=ldap.SCOPE_ONELEVEL
|
filter, attrs_list, base_dn, scope=ldap.SCOPE_ONELEVEL
|
||||||
)
|
)
|
||||||
except errors.NotFound:
|
except errors.NotFound:
|
||||||
(entries, truncated) = (tuple(), False)
|
(entries, truncated) = ([], False)
|
||||||
|
|
||||||
for callback in self.POST_CALLBACKS:
|
for callback in self.POST_CALLBACKS:
|
||||||
if hasattr(callback, 'im_self'):
|
if hasattr(callback, 'im_self'):
|
||||||
@ -737,7 +753,7 @@ class LDAPSearch(CallbackInterface, crud.Search):
|
|||||||
|
|
||||||
for e in entries:
|
for e in entries:
|
||||||
e[1]['dn'] = e[0]
|
e[1]['dn'] = e[0]
|
||||||
entries = tuple(e for (dn, e) in entries)
|
entries = [e for (dn, e) in entries]
|
||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
result=entries,
|
result=entries,
|
||||||
|
Loading…
Reference in New Issue
Block a user