widelands / widelands-website

The widelands website is a bunch of applications for the django web framework. It is developed in the open here.
https://www.widelands.org/
GNU General Public License v2.0
15 stars 10 forks source link

Allow usernames with non-English characters #300

Open gunchleoc opened 5 years ago

gunchleoc commented 5 years ago

We currently only allow a subset of ASCII in usernames. It would be nice if speakers of languages other than English were more free in their choice, e.g. allow them to add äßé or a Username in Cyrillic or Chinese script.

See also the website bug 1784693 "Using Unicode literals cause a server error"


Imported from Launchpad using lp2gh.

gunchleoc commented 5 years ago

(by franku) This is a restriction of Django in combination python2:

"... Unicode characters have always been accepted when using Python 3. Django 1.10 officially added Unicode support in usernames, keeping the ASCII-only behavior on Python 2."

See: https://docs.djangoproject.com/en/1.11/ref/contrib/auth/#django.contrib.auth.models.User.username

So the switch to python 3 will accept a wide range of additional characters. Tested 'ß' in usernames, also polish characters in the python3 branch.

But we need to change the database encoding to fully support unicode (e.g. chinese characters), which means the length of text columns shrinks and thus there is a possibility to loose some of text in old entries. So this has to be done carefully.

gunchleoc commented 5 years ago

(by stonerl) Before we can enable this on the website, we need to make sure widelands can properly handle this.

Here is a list of things to do first:

We must be sure that usernames are accessible by others; for wispering, warning & kicking. Otherwise, a user could just choose a name that other can't type and non of the above mentioned would be possible.

That's why I'm currently limiting the possible characters for usernames in widelands.

Enabling this will be much work. We should also make sure that we do not enable support for this on the website without having the code in widelands in place.

gunchleoc commented 5 years ago

(by franku)

  • proper username parsing (e.g. spaces in names)

FYI: django's default is to permit spaces in usernames.

gunchleoc commented 5 years ago

(by franku) Sorry: djangos default is to forbid spaces in usernames

gunchleoc commented 5 years ago

(by stonerl) Well, then we can add one checkmark to the list :)

gunchleoc commented 5 years ago

(by gunchleoc) I am in favor of reworking the chat UI so that player can click on a user in a list of usernames to add their name to the chat. That would also solve the problem of accidentally posting publicly instead of whispering when you mistype a username.

It would also be really cool if we had a team chat in-game.

So, start this project with a redesign of the chat UI?

gunchleoc commented 5 years ago

(by stonerl)

So, start this project with a redesign of the chat UI?

I guess... :)

blotter commented 1 year ago

Substituting a custom User model mit ausführlichem beispiel am ende. ein zulassen von anderen zeichen ist eine größere aufgabe :)