diff options
-rw-r--r-- | ipa-python/user.py | 15 | ||||
-rw-r--r-- | ipa-server/ipa-gui/ipagui/controllers.py | 8 |
2 files changed, 17 insertions, 6 deletions
diff --git a/ipa-python/user.py b/ipa-python/user.py index 38a634725..4377dad9b 100644 --- a/ipa-python/user.py +++ b/ipa-python/user.py @@ -3,6 +3,17 @@ import ldif import re import cStringIO +def utf8_encode_value(value): + if isinstance(value,unicode): + return value.encode('utf-8') + return value + +def utf8_encode_values(values): + if isinstance(values,list) or isinstance(values,tuple): + return map(utf8_encode_value, values) + else: + return utf8_encode_value(values) + class User: """This class represents an IPA user. An LDAP entry consists of a DN and a list of attributes. Each attribute consists of a name and a list of @@ -86,9 +97,9 @@ class User: if (len(value) < 1): return if (len(value) == 1): - self.data[name] = value[0] + self.data[name] = utf8_encode_values(value[0]) else: - self.data[name] = value + self.data[name] = utf8_encode_values(value) setValues = setValue diff --git a/ipa-server/ipa-gui/ipagui/controllers.py b/ipa-server/ipa-gui/ipagui/controllers.py index b285685f5..1377eabc7 100644 --- a/ipa-server/ipa-gui/ipagui/controllers.py +++ b/ipa-server/ipa-gui/ipagui/controllers.py @@ -115,10 +115,10 @@ class Root(controllers.RootController): orig_user_dict = loads(b64decode(kw.get('user_orig'))) new_user = ipa.user.User(orig_user_dict) - new_user.setValue('givenname', utf8_encode(kw.get('givenname'))) - new_user.setValue('sn', utf8_encode(kw.get('sn'))) - new_user.setValue('mail', utf8_encode(kw.get('mail'))) - new_user.setValue('telephonenumber', utf8_encode(kw.get('telephonenumber'))) + new_user.setValue('givenname', kw.get('givenname')) + new_user.setValue('sn', kw.get('sn')) + new_user.setValue('mail', kw.get('mail')) + new_user.setValue('telephonenumber', kw.get('telephonenumber')) # # this is a hack until we decide on the policy for names/cn/sn/givenName # |