From 68e8942116a62e91148d75d91d75acc550b955f0 Mon Sep 17 00:00:00 2001
From: Sinisa Veseli <sveseli@aps.anl.gov>
Date: Mon, 6 Mar 2017 15:41:00 +0000
Subject: [PATCH] fix for non-printable characters in name

---
 src/python/dm/aps_bss/impl/bssClient.py | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/python/dm/aps_bss/impl/bssClient.py b/src/python/dm/aps_bss/impl/bssClient.py
index 75b56705..1dfe582c 100644
--- a/src/python/dm/aps_bss/impl/bssClient.py
+++ b/src/python/dm/aps_bss/impl/bssClient.py
@@ -96,15 +96,21 @@ class BssClient:
         for experimenter in experimenterArray:
             user = ApsUserInfo({
                 'id' : experimenter.id,
-                'badge' : experimenter.badge,
                 'email' : experimenter.email,
-                'firstName' : experimenter.firstName,
-                'lastName' : experimenter.lastName
             })
+            if hasattr(experimenter, 'badge'):
+                user['badge'] = experimenter.badge
+            else:
+                # Ignore this user, has no badge
+                continue
             if hasattr(experimenter, 'piFlag'):
                 user['piFlag'] = experimenter.piFlag
             if hasattr(experimenter, 'instId'):
                 user['instId'] = experimenter.instId
+            if hasattr(experimenter, 'firstName'):
+                user['firstName'] = ''.join(filter(lambda x:x in string.printable, experimenter.firstName))
+            if hasattr(experimenter, 'lastName'):
+                user['lastName'] = ''.join(filter(lambda x:x in string.printable, experimenter.lastName))
             if hasattr(experimenter, 'institution'):
                 # Remove non-printable characters
                 user['institution'] = ''.join(filter(lambda x:x in string.printable, experimenter.institution))
-- 
GitLab