projects
/
matthijs
/
upstream
/
django-ldapdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
restrict selected fields
[matthijs/upstream/django-ldapdb.git]
/
ldapdb
/
__init__.py
diff --git
a/ldapdb/__init__.py
b/ldapdb/__init__.py
index 4b0a6d54379abaf9dbb55d1037426fe0a2148d32..0db12a1705d5a5eaf7dfe8b19f05bc24959c2158 100644
(file)
--- a/
ldapdb/__init__.py
+++ b/
ldapdb/__init__.py
@@
-23,16
+23,6
@@
import ldap
from django.conf import settings
from django.db.backends import BaseDatabaseFeatures, BaseDatabaseOperations
from django.conf import settings
from django.db.backends import BaseDatabaseFeatures, BaseDatabaseOperations
-def convert(field, value, func):
- if not value or field == 'jpegPhoto':
- return value
- elif isinstance(value, int):
- return str(value)
- elif isinstance(value, list):
- return [ func(x) for x in value ]
- else:
- return func(value)
-
def escape_ldap_filter(value):
value = str(value)
return value.replace('\\', '\\5c') \
def escape_ldap_filter(value):
value = str(value)
return value.replace('\\', '\\5c') \
@@
-68,26
+58,16
@@
class LdapConnection(object):
return DatabaseCursor(self.connection)
def add_s(self, dn, modlist):
return DatabaseCursor(self.connection)
def add_s(self, dn, modlist):
- mods = []
- for field, value in modlist:
- converted = convert(field, value, lambda x: x.encode(self.charset))
- if isinstance(converted, list):
- mods.append((field, converted))
- else:
- mods.append((field, [converted]))
cursor = self._cursor()
cursor = self._cursor()
- return cursor.connection.add_s(dn.encode(self.charset), mod
s
)
+ return cursor.connection.add_s(dn.encode(self.charset), mod
list
)
def delete_s(self, dn):
cursor = self._cursor()
return cursor.connection.delete_s(dn.encode(self.charset))
def modify_s(self, dn, modlist):
def delete_s(self, dn):
cursor = self._cursor()
return cursor.connection.delete_s(dn.encode(self.charset))
def modify_s(self, dn, modlist):
- mods = []
- for op, field, value in modlist:
- mods.append((op, field, convert(field, value, lambda x: x.encode(self.charset))))
cursor = self._cursor()
cursor = self._cursor()
- return cursor.connection.modify_s(dn.encode(self.charset), mod
s
)
+ return cursor.connection.modify_s(dn.encode(self.charset), mod
list
)
def rename_s(self, dn, newrdn):
cursor = self._cursor()
def rename_s(self, dn, newrdn):
cursor = self._cursor()
@@
-98,11
+78,6
@@
class LdapConnection(object):
results = cursor.connection.search_s(base, scope, filterstr.encode(self.charset), attrlist)
output = []
for dn, attrs in results:
results = cursor.connection.search_s(base, scope, filterstr.encode(self.charset), attrlist)
output = []
for dn, attrs in results:
- for field in attrs:
- if field == "member" or field == "memberUid":
- attrs[field] = convert(field, attrs[field], lambda x: x.decode(self.charset))
- else:
- attrs[field] = convert(field, attrs[field][0], lambda x: x.decode(self.charset))
output.append((dn.decode(self.charset), attrs))
return output
output.append((dn.decode(self.charset), attrs))
return output