Эх сурвалжийг харах

HUE-6187 [useradmin] Support unicode characters in usernames

Jenny Kim 8 жил өмнө
parent
commit
61ecb5981f

+ 12 - 0
apps/useradmin/src/useradmin/tests.py

@@ -662,6 +662,18 @@ class TestUserAdmin(BaseUserAdminTests):
       assert_true(response.status_code == 302 and "login" in response["location"],
                   "Inactivated user gets redirected to login page")
 
+      # Create a new user with unicode characters
+      response = c.post('/useradmin/users/new', dict(username='christian_häusler',
+                                                     password1="test",
+                                                     password2="test",
+                                                     is_active="True"))
+      response = c.get('/useradmin/')
+      assert_true('christian_häusler' in response.content)
+      assert_true(len(response.context["users"]) > 1)
+
+      # Validate profile is created.
+      assert_true(UserProfile.objects.filter(user__username='christian_häusler').exists())
+
       # Delete that regular user
       funny_profile = get_profile(test_user)
       response = c_su.post('/useradmin/users/delete', {u'user_ids': [funny_user.id]})

+ 2 - 1
desktop/core/src/desktop/lib/rest/http_client.py

@@ -21,6 +21,7 @@ import threading
 import urllib
 
 from django.utils.encoding import iri_to_uri, smart_str
+from django.utils.http import urlencode
 
 from desktop import conf
 
@@ -200,6 +201,6 @@ class HttpClient(object):
     if path:
       res += posixpath.normpath('/' + path.lstrip('/'))
     if params:
-      param_str = urllib.urlencode(params)
+      param_str = urlencode(params)
       res += '?' + param_str
     return iri_to_uri(res)