X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FPersons.py;h=8aa638eda0ca9908901426a61e713779146705d3;hb=f8f4dd18ee4895d2941b14a65c51d87ceed802fe;hp=678697d2ed113a910fec91ea087665c097debb57;hpb=5d2859509faf449daf088d98ae5e737c6c096d69;p=plcapi.git diff --git a/PLC/Persons.py b/PLC/Persons.py index 678697d..8aa638e 100644 --- a/PLC/Persons.py +++ b/PLC/Persons.py @@ -80,26 +80,12 @@ class Person(Row): """ invalid_email = PLCInvalidArgument("Invalid e-mail address") - email_badchars = r'[][()<>|;^,\200-\377]' - # Pretty minimal, cheesy check. We could do better... - if not email or email.count(' ') > 0: + if not email: raise invalid_email - if re.search(email_badchars, email) or email[0] == '-': - raise invalid_email - - email = email.lower() - at_sign = email.find('@') - if at_sign < 1: - raise invalid_email - user = email[:at_sign] - rest = email[at_sign+1:] - domain = rest.split('.') - # This means local, unqualified addresses, are not allowed - if not domain: - raise invalid_email - if len(domain) < 2: + email_re = re.compile('[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-_]+\.[a-zA-Z]+') + if not email_re.match(email): raise invalid_email # check only against users on the same peer