iro/validate.py
branchdevel
changeset 193 e5ec4bfa4929
parent 181 8a5be61f34c5
child 196 ee2c051fbe3f
equal deleted inserted replaced
192:6c708c334f37 193:e5ec4bfa4929
    61         except InvalidTel, e:
    61         except InvalidTel, e:
    62             e.field=field
    62             e.field=field
    63             raise e
    63             raise e
    64     return ret
    64     return ret
    65 
    65 
    66 def vEmail(value, field):
    66 def vEmail(value, field, allowString=True, allowList=True):
    67     '''validator for emailadresses (see wikipeda for strange mailadresses and RFC3696)
    67     '''validator for emailadresses (see wikipeda for strange mailadresses and RFC3696)
    68     valid:
    68     valid:
    69     "very.(),:;<>[]\\".VERY.\\"very@\\\ \\"very\\".unusual"@strange.example.com
    69     "very.(),:;<>[]\\".VERY.\\"very@\\\ \\"very\\".unusual"@strange.example.com
    70     ""@example.org
    70     ""@example.org
    71     "very.unusual.@.unusual.com"@example.com'
    71     "very.unusual.@.unusual.com"@example.com'
    77     this\\ still\\"not\\allowed@example.com
    77     this\\ still\\"not\\allowed@example.com
    78     '''
    78     '''
    79     ret = []
    79     ret = []
    80     str_=False
    80     str_=False
    81     if type(value) is types.StringType:
    81     if type(value) is types.StringType:
       
    82         if not allowString:
       
    83             raise ValidateException('%s must be a list of email addresses.'%field)
    82         str_=True
    84         str_=True
    83         value=[value]
    85         value=[value]
       
    86     elif not allowList:
       
    87         raise ValidateException('%s must be a email address - No list of email addresses.'%field)
    84     for v in value:
    88     for v in value:
    85         parts= re.match(r'^(.*)@(.+?)$',v)
    89         parts= re.match(r'^(.*)@(.+?)$',v)
    86         if not parts:
    90         if not parts:
    87             raise InvalidMail(v,field)
    91             raise InvalidMail(v,field)
    88         local=parts.group(1)
    92         local=parts.group(1)