[Freeipa-devel] [PATCH] move utf-8 encoding inside user

Kevin McCarthy kmccarth at redhat.com
Mon Aug 20 18:37:36 UTC 2007


This moved the utf-8 conversion inside the user.setValue() method.

-Kevin

-------------- next part --------------
# HG changeset patch
# User Kevin McCarthy <kmccarth at redhat.com>
# Date 1187635144 25200
# Node ID ad03d68751187008821ae1390ee1daa292791e3f
# Parent  a69ececded00cb296b06631bbbef47dfdfe61dd8
Move utf-8 conversion inside user.py (for updates).

diff -r a69ececded00 -r ad03d6875118 ipa-python/user.py
--- a/ipa-python/user.py	Mon Aug 20 10:50:11 2007 -0700
+++ b/ipa-python/user.py	Mon Aug 20 11:39:04 2007 -0700
@@ -2,6 +2,17 @@ import ldif
 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
@@ -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 -r a69ececded00 -r ad03d6875118 ipa-server/ipa-gui/ipagui/controllers.py
--- a/ipa-server/ipa-gui/ipagui/controllers.py	Mon Aug 20 10:50:11 2007 -0700
+++ b/ipa-server/ipa-gui/ipagui/controllers.py	Mon Aug 20 11:39:04 2007 -0700
@@ -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
             #
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 2228 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/freeipa-devel/attachments/20070820/f7094548/attachment.bin>


More information about the Freeipa-devel mailing list