Fix crash when users have non-ascii chars in names

Review Request #2657 — Created Oct. 14, 2011 and submitted

Information

Review Board

Reviewers

Fix crash when users have non-ascii chars in names

The HTTP headers are not allowed to contain other than US-ASCII characters,
so if users have names containing non-ascii characters their infobox would
not be shown, since django's http.HttpResponse._convert_to_ascii function
throws a UnicodeError if value.encode('us-ascii') fails.
Manually tested by creating a user "asdf" with last name "Näsman", which made /users/asdf/infobox crash, until I applied this patch after which the page showed up correctly.
Description From Last Updated

Hi guys! I've viewed the bugfix, but according to http://docs.python.org/howto/unicode.html 'replace' replaces everything with a '?' character, however 'xmlcharrefreplace' replaces …

DH dhorvath
IS
chipx86
  1. Looks reasonable. Would you mind providing a testcase for this (reviews/tests.py) that simulates access with a user containing such characters, and verifying what the ETag should be? This will help ensure this doesn't regress.
  2. 
      
DH
  1. 
      
  2. reviewboard/reviews/views.py (Diff revision 1)
     
     
    Show all issues
    Hi guys!
    
    I've viewed the bugfix, but according to http://docs.python.org/howto/unicode.html 'replace' replaces everything with a '?' character, however 'xmlcharrefreplace' replaces everything with it's XML form, which practically means, that special characters will remain the same when they are displayed on the webpage.
    
    So maybe using 'xmlcharrefreplace' would be a better solution :) Or does 'replace' keep the original names?
  3. 
      
OZ
  1. Ship It!
  2. 
      
QI
  1. Ship It!
  2. 
      
IS
Review request changed
Status:
Completed