From 0ff02395ff8d883f2f732dded8bf02fe0a272bdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Pracha=C5=99?= <jan.prachar@gmail.com> Date: Tue, 9 Mar 2021 16:22:07 +0100 Subject: [PATCH] =?UTF-8?q?Lep=C5=A1=C3=AD=20hl=C3=A1=C5=A1ky=20p=C5=99i?= =?UTF-8?q?=20kontrole=20emailov=C3=A9=20adresy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mo/users.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/mo/users.py b/mo/users.py index 0bbbb587..50327657 100644 --- a/mo/users.py +++ b/mo/users.py @@ -15,13 +15,17 @@ import mo.tokens def normalize_email(addr: str) -> str: if not re.fullmatch(r'.+@.+', addr): - raise mo.CheckError('Chybný formát mailové adresy') + raise mo.CheckError('V e-mailové adrese chybí zavináč') if re.search(r'[ \t]', addr): raise mo.CheckError('E-mailová adresa obsahuje mezeru') - if not re.fullmatch(r'[!-~]+', addr): - raise mo.CheckError('E-mailová adresa obsahuje znaky mimo ASCII') + m = re.search(r'[^!-~]+', addr) + if m: + if m[0].isprintable(): + raise mo.CheckError(f'E-mailová adresa obsahuje nepovolené znaky: {m[0]}') + else: + raise mo.CheckError('E-mailová adresa obsahuje netisknutelné znaky: '+repr(m[0])) try: # Tady úmyslně používáme knihovnu jen ke kontrole a ne k normalizaci, -- GitLab