mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-01-27 16:46:42 -06:00
Support python-ldap 2.3 way of making LDAP control
This strange patch is to accomodate both python-ldap 2.3 and later versions. There was refactoring in python-ldap support for LDAP controls that split base class into two different, changing properties and method signatures. Luckily, we don't use any values passed to encodeControlValue.
This commit is contained in:
parent
a72064c377
commit
459c83fb75
@ -40,8 +40,12 @@ from samba.ndr import ndr_pack
|
||||
from samba import net
|
||||
import samba
|
||||
import random
|
||||
import ldap as _ldap
|
||||
from Crypto.Cipher import ARC4
|
||||
try:
|
||||
from ldap.controls import RequestControl as LDAPControl #pylint: disable=F0401
|
||||
except ImportError:
|
||||
from ldap.controls import LDAPControl as LDAPControl #pylint: disable=F0401
|
||||
import ldap as _ldap
|
||||
|
||||
__doc__ = _("""
|
||||
Classes to manage trust joins using DCE-RPC calls
|
||||
@ -81,13 +85,17 @@ def assess_dcerpc_exception(num=None,message=None):
|
||||
message "%(message)s" (both may be "None")''') % dict(num=num, message=message)
|
||||
return errors.RemoteRetrieveError(reason=reason)
|
||||
|
||||
class ExtendedDNControl(_ldap.controls.RequestControl):
|
||||
class ExtendedDNControl(LDAPControl):
|
||||
# This class attempts to implement LDAP control that would work
|
||||
# with both python-ldap 2.4.x and 2.3.x, thus there is mix of properties
|
||||
# from both worlds and encodeControlValue has default parameter
|
||||
def __init__(self):
|
||||
self.controlValue = 1
|
||||
self.controlType = "1.2.840.113556.1.4.529"
|
||||
self.criticality = False
|
||||
self.integerValue = 1
|
||||
|
||||
def encodeControlValue(self):
|
||||
def encodeControlValue(self, value=None):
|
||||
return '0\x03\x02\x01\x01'
|
||||
|
||||
class DomainValidator(object):
|
||||
|
Loading…
Reference in New Issue
Block a user