Merge pull request #1081 from edx/jbau/shib-bugfixes
Jbau/shib bugfixes
This commit is contained in:
@@ -514,8 +514,16 @@ class ShibUtilFnTest(TestCase):
|
||||
"""
|
||||
def test__flatten_to_ascii(self):
|
||||
DIACRITIC = u"àèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸåÅçÇ" # pylint: disable=C0103
|
||||
STR_DIACRI = "àèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸåÅçÇ" # pylint: disable=C0103
|
||||
FLATTENED = u"aeiouAEIOUaeiouyAEIOUYaeiouAEIOUanoANOaeiouyAEIOUYaAcC" # pylint: disable=C0103
|
||||
self.assertEqual(_flatten_to_ascii(u'jas\xf6n'), u'jason') # umlaut
|
||||
self.assertEqual(_flatten_to_ascii(u'Jason\u5305'), u'Jason') # mandarin, so it just gets dropped
|
||||
self.assertEqual(_flatten_to_ascii(u'abc'), u'abc') # pass through
|
||||
self.assertEqual(_flatten_to_ascii(DIACRITIC), FLATTENED)
|
||||
|
||||
unicode_test = _flatten_to_ascii(DIACRITIC)
|
||||
self.assertEqual(unicode_test, FLATTENED)
|
||||
self.assertIsInstance(unicode_test, unicode)
|
||||
|
||||
str_test = _flatten_to_ascii(STR_DIACRI)
|
||||
self.assertEqual(str_test, FLATTENED)
|
||||
self.assertIsInstance(str_test, str)
|
||||
|
||||
@@ -34,7 +34,6 @@ try:
|
||||
except ImportError:
|
||||
from django.contrib.csrf.middleware import csrf_exempt
|
||||
from django_future.csrf import ensure_csrf_cookie
|
||||
from util.cache import cache_if_anonymous
|
||||
|
||||
import django_openid_auth.views as openid_views
|
||||
from django_openid_auth import auth as openid_auth
|
||||
@@ -137,8 +136,6 @@ def _external_login_or_signup(request,
|
||||
fullname,
|
||||
retfun=None):
|
||||
"""Generic external auth login or signup"""
|
||||
logout(request)
|
||||
|
||||
# see if we have a map from this external_id to an edX username
|
||||
try:
|
||||
eamap = ExternalAuthMap.objects.get(external_id=external_id,
|
||||
@@ -233,13 +230,15 @@ def _flatten_to_ascii(txt):
|
||||
"""
|
||||
Flattens possibly unicode txt to ascii (django username limitation)
|
||||
@param name:
|
||||
@return:
|
||||
@return: the flattened txt (in the same type as was originally passed in)
|
||||
"""
|
||||
return unicodedata.normalize('NFKD', txt).encode('ASCII', 'ignore')
|
||||
|
||||
if isinstance(txt, str):
|
||||
txt = txt.decode('utf-8')
|
||||
return unicodedata.normalize('NFKD', txt).encode('ASCII', 'ignore')
|
||||
else:
|
||||
return unicode(unicodedata.normalize('NFKD', txt).encode('ASCII', 'ignore'))
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@cache_if_anonymous
|
||||
def _signup(request, eamap):
|
||||
"""
|
||||
Present form to complete for signup via external authentication.
|
||||
|
||||
Reference in New Issue
Block a user