@@ -123,7 +123,7 @@ def __init__(self, fdw_options, fdw_columns):
123
123
ldap3 .Server (self .ldapuri ),
124
124
user = fdw_options .get ("binddn" , None ),
125
125
password = fdw_options .get ("bindpwd" , None ),
126
- client_strategy = ldap3 .STRATEGY_SYNC_RESTARTABLE )
126
+ client_strategy = ldap3 .RESTARTABLE if ldap3 . version . __version__ > '2.0.0' else ldap3 . STRATEGY_SYNC_RESTARTABLE )
127
127
self .path = fdw_options ["path" ]
128
128
self .scope = self .parse_scope (fdw_options .get ("scope" , None ))
129
129
self .object_class = fdw_options ["objectclass" ]
@@ -159,19 +159,22 @@ def execute(self, quals, columns):
159
159
for key , value in entry ["attributes" ].items ():
160
160
if key .lower () in self .field_definitions :
161
161
pgcolname = self .field_definitions [key .lower ()].column_name
162
- if pgcolname in self . array_columns :
162
+ if ldap3 . version . __version__ > '2.0.0' :
163
163
value = value
164
164
else :
165
- value = value [0 ]
165
+ if pgcolname in self .array_columns :
166
+ value = value
167
+ else :
168
+ value = value [0 ]
166
169
litem [pgcolname ] = value
167
170
yield litem
168
171
169
172
def parse_scope (self , scope = None ):
170
173
if scope in (None , "" , "one" ):
171
- return ldap3 .SEARCH_SCOPE_SINGLE_LEVEL
174
+ return ldap3 .LEVEL if ldap3 . version . __version__ > '2.0.0' else ldap3 . SEARCH_SCOPE_SINGLE_LEVEL
172
175
elif scope == "sub" :
173
- return ldap3 .SEARCH_SCOPE_WHOLE_SUBTREE
176
+ return ldap3 .SUBTREE if ldap3 . version . __version__ > '2.0.0' else ldap3 . SEARCH_SCOPE_WHOLE_SUBTREE
174
177
elif scope == "base" :
175
- return ldap3 .SEARCH_SCOPE_BASE_OBJECT
178
+ return ldap3 .BASE if ldap3 . version . __version__ > '2.0.0' else ldap3 . SEARCH_SCOPE_BASE_OBJECT
176
179
else :
177
180
log_to_postgres ("Invalid scope specified: %s" % scope , ERROR )
0 commit comments