Commit c3525272 authored by Jonas Platte's avatar Jonas Platte

Prohibited usage of empty local part for validate_email(email, strict = true)

parent 70e4e7f7
...@@ -20,8 +20,11 @@ def validate_email(email, strict): ...@@ -20,8 +20,11 @@ def validate_email(email, strict):
# these characters are permitted in email address. # these characters are permitted in email address.
ATEXT = r'[\w!#$%&\'\*\+\-/=\?\^`\{\|\}~]' # see 3.2.4 ATEXT = r'[\w!#$%&\'\*\+\-/=\?\^`\{\|\}~]' # see 3.2.4
DOT_ATOM_TEXT = ATEXT + r'*(?:\.' + ATEXT + r'+)*' # see 3.2.4 DOT_ATOM_TEXT = r'(' + ATEXT + r'(?:\.' + ATEXT + r'+)*)' # see 3.2.4
DOT_ATOM_TEXT2 = ATEXT + r'+(?:\.' + ATEXT + r'+)+' # as above, but with a "+" since the host part must be under some TLD if not strict:
DOT_ATOM_TEXT += r'?' # allow an empty local part for catchalls
DOT_ATOM_TEXT2 = ATEXT + r'+(?:\.' + ATEXT + r'+)+' # as above, but with a "+" since the host part must be under some TLD
ADDR_SPEC = '^%s@%s$' % (DOT_ATOM_TEXT, DOT_ATOM_TEXT2) # see 3.4.1 ADDR_SPEC = '^%s@%s$' % (DOT_ATOM_TEXT, DOT_ATOM_TEXT2) # see 3.4.1
return re.match(ADDR_SPEC, email) return re.match(ADDR_SPEC, email)
...@@ -66,7 +69,7 @@ def add_mail_user(email, pw, env): ...@@ -66,7 +69,7 @@ def add_mail_user(email, pw, env):
c.execute("INSERT INTO users (email, password) VALUES (?, ?)", (email, pw)) c.execute("INSERT INTO users (email, password) VALUES (?, ?)", (email, pw))
except sqlite3.IntegrityError: except sqlite3.IntegrityError:
return ("User already exists.", 400) return ("User already exists.", 400)
# write databasebefore next step # write databasebefore next step
conn.commit() conn.commit()
...@@ -212,4 +215,3 @@ if __name__ == "__main__": ...@@ -212,4 +215,3 @@ if __name__ == "__main__":
if len(sys.argv) > 1 and sys.argv[1] == "update": if len(sys.argv) > 1 and sys.argv[1] == "update":
from utils import load_environment from utils import load_environment
print(kick(load_environment())) print(kick(load_environment()))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment