Project

General

Profile

Support #48657

refus d'une adresse mail non-ascii sur /rsu/individu

Added by Thomas Noël 17 days ago. Updated 17 days ago.

Status:
Nouveau
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
18 Nov 2020
Due date:
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No

Description

sur un POST avec email = noë on a une erreur ErrorDetail(string=u'Saisissez une adresse email valable.', code=u'invalid')]"

Alors que c'est un email valable... comment pourrait-on dire à DRF de laisser filer ?

History

#2

Updated by Benjamin Dauvergne 17 days ago

C'est valide des caractères hors ASCII 7-bit dans les adresses mails ?

#3

Updated by Benjamin Dauvergne 17 days ago

Visiblement oui, depuis 20121:

In addition to ASCII characters, as of 2012 you can use international characters above U+007F, encoded as UTF-8 as described in the RFC 6532 spec and explained on Wikipedia. Note that as of 2019, these standards are still marked as Proposed, but are being rolled out slowly. The changes in this spec essentially added international characters as valid alphanumeric characters (atext) without affecting the rules on allowed & restricted special characters like !# and @:.

1 https://stackoverflow.com/questions/2049502/what-characters-are-allowed-in-an-email-address

On peut autoriser dans la partie locale tout UTF-8 hors ASCII.

#4

Updated by Benjamin Dauvergne 17 days ago

PS: en gros on doit ajouter r'[\x80-\xFFFFFFFF]'

#5

Updated by Thomas Noël 17 days ago

Benjamin Dauvergne a écrit :

PS: en gros on doit ajouter r'[\x80-\xFFFFFFFF]'

Selon toi ça s'ajoute où ? Parce que dans le code je pense qu'on utilise juste le serializer de DRF (EmailField) et que c'est lui qui râle, en fait.

#6

Updated by Benjamin Dauvergne 17 days ago

Thomas Noël a écrit :

Benjamin Dauvergne a écrit :

PS: en gros on doit ajouter r'[\x80-\xFFFFFFFF]'

Selon toi ça s'ajoute où ? Parce que dans le code je pense qu'on utilise juste le serializer de DRF (EmailField) et que c'est lui qui râle, en fait.

Ça s'ajoute en refaisant/surchargeant EmailField avec la validation qui nous plaît comme dans authentic :/ Mais je t'encourage à ouvrir un ticket dans Django (car je pense que DRF utilise la même validation que Django) à moins que ce soit déjà corrigé dans les versions récentes.

PS: visiblement pas, https://github.com/django/django/blob/master/django/core/validators.py#L161 et je ne vois aucun ticket ouvert, ce qui ne m'étonne pas trop moi même c'est la première fois que vois un accent dans un adresse email.

#7

Updated by Thomas Noël 17 days ago

Benjamin Dauvergne a écrit :

PS: visiblement pas, https://github.com/django/django/blob/master/django/core/validators.py#L161 et je ne vois aucun ticket ouvert, ce qui ne m'étonne pas trop moi même c'est la première fois que vois un accent dans un adresse email.

Oui en vérité je suis un peu perplexe, c'est très peu utilisé et je soupçonne même que dans l'exemple vu chez le client, ça soit une erreur de la part de l'agent qui a saisi le mail (chloé au lieu de chloe). Je vais faire un ticket pour discuter si on veut pour l'instant interdire ça dans la partie gauche des champs email de w.c.s.

Also available in: Atom PDF