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
start moving charset conversion to fields
[matthijs/upstream/django-ldapdb.git]
/
ldapdb
/
__init__.py
diff --git
a/ldapdb/__init__.py
b/ldapdb/__init__.py
index 4b0a6d54379abaf9dbb55d1037426fe0a2148d32..767e6a9fc3030a7dfe6363e7f337e39f2054a8f5 100644
(file)
--- a/
ldapdb/__init__.py
+++ b/
ldapdb/__init__.py
@@
-24,6
+24,7
@@
from django.conf import settings
from django.db.backends import BaseDatabaseFeatures, BaseDatabaseOperations
def convert(field, value, func):
from django.db.backends import BaseDatabaseFeatures, BaseDatabaseOperations
def convert(field, value, func):
+ # FIXME : we should not reference the attribute name!
if not value or field == 'jpegPhoto':
return value
elif isinstance(value, int):
if not value or field == 'jpegPhoto':
return value
elif isinstance(value, int):
@@
-68,26
+69,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()
@@
-99,10
+90,7
@@
class LdapConnection(object):
output = []
for dn, attrs in results:
for field in attrs:
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))
+ attrs[field] = convert(field, attrs[field], lambda x: x.decode(self.charset))
output.append((dn.decode(self.charset), attrs))
return output
output.append((dn.decode(self.charset), attrs))
return output