From 3e4df393188a659b40269581a75e697b1b0e8e25 Mon Sep 17 00:00:00 2001 From: Riku Voipio Date: Tue, 13 Apr 2021 15:04:28 +0300 Subject: python3: wrap ldap calls with decode('utf-8') This is apparently the recommended way by ldap library authors: https: //github.com/pyldap/pyldap/issues/110 Change-Id: Icbd52e115a2eecc633d3f5f01e2946c5cbeca165 --- linaro_ldap.py | 13 +++++++------ member_list.py | 8 ++++---- 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: -- cgit v1.2.3