aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiku Voipio <riku.voipio@linaro.org>2021-04-13 15:04:28 +0300
committerRiku Voipio <riku.voipio@linaro.org>2021-04-13 15:04:28 +0300
commit3e4df393188a659b40269581a75e697b1b0e8e25 (patch)
tree573ed39bb90e3ade1f0283c169c903cb5555d9f8
parent197a647a7518ea63eb7064daf8f168d11c1f17ce (diff)
python3: wrap ldap calls with decode('utf-8')python-3
This is apparently the recommended way by ldap library authors: https: //github.com/pyldap/pyldap/issues/110 Change-Id: Icbd52e115a2eecc633d3f5f01e2946c5cbeca165
-rw-r--r--linaro_ldap.py13
-rwxr-xr-xmember_list.py8
2 files changed, 11 insertions, 10 deletions
diff --git a/linaro_ldap.py b/linaro_ldap.py
index 45b49ec..d32e724 100644
--- a/linaro_ldap.py
+++ b/linaro_ldap.py
@@ -111,9 +111,10 @@ def get_users_and_keys(only_validated=False):
# Just pick the first UID, it does not really matter how the
# user is called, it will access the git repository via the
# 'git' user.
- uid = row[1]['uid'][0]
+ uid = row[1]['uid'][0].decode('utf-8')
ssh_keys = row[1]['sshPublicKey']
for index, ssh_key in enumerate(ssh_keys):
+ ssh_key=ssh_key.decode('utf-8')
if not only_validated or validate_key(ssh_key):
key_name = '{0}@key_{1}.pub'.format(uid, index)
all_users.setdefault(uid, []).append((key_name, ssh_key))
@@ -128,8 +129,8 @@ def get_groups_and_users(ignore_list=[]):
all_groups = {}
for row in result:
try:
- uid = row[1]['uid'][0]
- groups = row[1]['memberOf']
+ uid = row[1]['uid'][0].decode('utf-8')
+ groups = row[1]['memberOf'].decode('utf-8')
if (type(ignore_list) is list) and (uid in ignore_list):
continue
for group in groups:
@@ -156,11 +157,11 @@ def get_employees_by_team(ignore_list=[]):
TEAMS = {}
for entry in results:
- uid = entry[1]['uid'].pop()
+ uid = entry[1]['uid'].pop().decode('utf-8')
if uid in ignore_list:
continue
- department = entry[1]['departmentNumber'].pop()
+ department = entry[1]['departmentNumber'].pop().decode('utf-8')
if department is None or department == 'None|None':
continue
@@ -176,7 +177,7 @@ def get_employees_by_team(ignore_list=[]):
user_info = {}
for k in list(entry[1].keys()):
if len(entry[1][k]) > 0:
- user_info[k] = entry[1][k].pop()
+ user_info[k] = entry[1][k].pop().decode('utf-8')
TEAMS[segment][group].append(user_info)
diff --git a/member_list.py b/member_list.py
index 0ba16e5..df03886 100755
--- a/member_list.py
+++ b/member_list.py
@@ -34,7 +34,7 @@ def get_member_ous(ldap):
member_list = []
for x in result:
- member_list.append( (x[1]['description'][0], x[1]['ou'][0]) )
+ member_list.append( (x[1]['description'][0].decode('utf-8'), x[1]['ou'][0].decode('utf-8')) )
member_list = sorted(member_list, key=getKey)
return member_list
@@ -52,11 +52,11 @@ for member in member_ou_list:
for person in s_people:
try:
- uid = person[1]['gecos'][0]
- email = person[1]['mail'][0]
+ uid = person[1]['gecos'][0].decode('utf-8')
+ email = person[1]['mail'][0].decode('utf-8')
foo = tmpl.render(
username=uid,
- org=member[0],
+ org=member[0].decode('utf-8'),
email=email
)
with open( OUTFILE, 'a') as outfile: