コード例 #1
0
def is_valid_email(address):
    # FIXME In Django 1.2 we can use validators
    field = EmailField()
    try:
        field.clean(address)
    except ValidationError, e:
        return False
コード例 #2
0
ファイル: testcase.py プロジェクト: Aaln1986/Nitrate
def validate_cc_list(cc_list):
    '''Validate each email in cc_list argument

    This is called by ``notification_*`` methods internally.

    No return value, and if any email in cc_list is not valid, ValidationError
    will be raised.
    '''

    if not isinstance(cc_list, list):
        raise TypeError('cc_list should be a list object.')

    field = EmailField(required=True)
    invalid_emails = []

    for item in cc_list:
        try:
            field.clean(item)
        except ValidationError:
            invalid_emails.append(item)

    if invalid_emails:
        raise ValidationError(
            field.error_messages['invalid'] % {
                'value': ', '.join(invalid_emails)})
コード例 #3
0
ファイル: views.py プロジェクト: spattk/url-shortener
def validate_url(url):
    protocols = ['http://', 'https://']
    flag = 0
    url_form_field = URLField()
    email_field = EmailField()
    try:
        email_field.clean(url)
    except ValidationError:
        if url != '':
            for protocol in protocols:
                n = len(protocol)
                if url[0:n] == protocol:
                    flag = 1
                    break
            if flag == 0:
                flag1 = 1
                for protocol in protocols:
                    new_url = protocol + url
                    try:
                        new_url == url_form_field.clean(new_url)
                    except ValidationError:
                        flag1 = 0
                    else:
                        url = new_url
                        break
                if flag1 == 1:
                    return True, url
                return False, url
            return True, url
        return False, url
    else:
        return False, url
コード例 #4
0
def _validate_cc_list(cc_list):
    """
        Validate each email address given in argument. Called by
        notification RPC methods.

        :param cc_list: List of email addresses
        :type cc_list: list
        :return: None
        :raises: TypeError or ValidationError if addresses are not valid.
    """

    if not isinstance(cc_list, list):
        raise TypeError('cc_list should be a list object.')

    field = EmailField(required=True)
    invalid_emails = []

    for item in cc_list:
        try:
            field.clean(item)
        except ValidationError:
            invalid_emails.append(item)

    if invalid_emails:
        raise ValidationError(field.error_messages['invalid'] %
                              {'value': ', '.join(invalid_emails)})
コード例 #5
0
def _validate_cc_list(cc_list):
    """
    Validate each email address given in argument. Called by
    notification RPC methods.

    :param cc_list: List of email addresses
    :type cc_list: list
    :raises TypeError or ValidationError: if addresses are not valid.
    """

    if not isinstance(cc_list, list):
        raise TypeError("cc_list should be a list object.")

    field = EmailField(
        required=True,
        error_messages={
            "invalid": "Following email address(es) are invalid: %s"
        },
    )
    invalid_emails = []

    for item in cc_list:
        try:
            field.clean(item)
        except ValidationError:
            invalid_emails.append(item)

    if invalid_emails:
        raise ValidationError(field.error_messages["invalid"] %
                              ", ".join(invalid_emails))
コード例 #6
0
 def test_emailfield_min_max_length(self):
     f = EmailField(min_length=10, max_length=15)
     self.assertWidgetRendersTo(f, '<input id="id_f" type="email" name="f" maxlength="15" />')
     with self.assertRaisesMessage(ValidationError, "'Ensure this value has at least 10 characters (it has 9).'"):
         f.clean("*****@*****.**")
     self.assertEqual("*****@*****.**", f.clean("*****@*****.**"))
     with self.assertRaisesMessage(ValidationError, "'Ensure this value has at most 15 characters (it has 20).'"):
         f.clean("*****@*****.**")
コード例 #7
0
ファイル: test_emailfield.py プロジェクト: Dgo-list/django-1
 def test_emailfield_min_max_length(self):
     f = EmailField(min_length=10, max_length=15)
     self.assertWidgetRendersTo(f, '<input id="id_f" type="email" name="f" maxlength="15" minlength="10" />')
     with self.assertRaisesMessage(ValidationError, "'Ensure this value has at least 10 characters (it has 9).'"):
         f.clean('*****@*****.**')
     self.assertEqual('*****@*****.**', f.clean('*****@*****.**'))
     with self.assertRaisesMessage(ValidationError, "'Ensure this value has at most 15 characters (it has 20).'"):
         f.clean('*****@*****.**')
コード例 #8
0
ファイル: tests.py プロジェクト: hynky1999/Personal_Webpage
    def test_was_submited_within_timeout(self):
        duration = datetime.timedelta(hours=4)
        base = timezone.now() - duration + datetime.timedelta(minutes=4)
        email = "*****@*****.**"
        field = EmailField(validators=[EmailTimeoutValidator(duration)])
        create_contactMessage(email=email,
                              date=base,
                              contact_category=create_contactCategory())

        with self.assertRaises(ValidationError):
            field.clean(email)
コード例 #9
0
ファイル: views.py プロジェクト: xvaldetaro/caiubem
	def post(self,request,*args,**kwargs):
		email = request.POST['email']
		ef = EmailField()
		try:
			ef.clean(email)
			Candidate.objects.get(email=email)
		except Candidate.DoesNotExist:
			url = "%s?email=%s" % (reverse('home:reg'), email)
			return HttpResponseRedirect(url)
		except ValidationError:
			messages.error(self.request, u"Email inválido")
		else:
			messages.info(self.request, u"O email %s já está cadastrado!" % email)

		return super(HomeView, self).get(request,*args,**kwargs)
コード例 #10
0
    def post(self, request, *args, **kwargs):
        email = request.POST['email']
        ef = EmailField()
        try:
            ef.clean(email)
            Candidate.objects.get(email=email)
        except Candidate.DoesNotExist:
            url = "%s?email=%s" % (reverse('home:reg'), email)
            return HttpResponseRedirect(url)
        except ValidationError:
            messages.error(self.request, u"Email inválido")
        else:
            messages.info(self.request,
                          u"O email %s já está cadastrado!" % email)

        return super(HomeView, self).get(request, *args, **kwargs)
コード例 #11
0
ファイル: tests.py プロジェクト: hynky1999/Personal_Webpage
    def test_was_submited_after_timeout(self):
        duration = datetime.timedelta(hours=2, minutes=2)
        base = timezone.now() - duration - datetime.timedelta(minutes=20)
        email = "*****@*****.**"
        field = EmailField(validators=[EmailTimeoutValidator(duration)])
        create_contactMessage(email=email,
                              date=base,
                              contact_category=create_contactCategory())

        self.assertIs(field.clean(email), email)
コード例 #12
0
ファイル: testcase.py プロジェクト: artjoman/Nitrate
def validate_cc_list(cc_list):
    """Validate each email in cc_list argument

    This is called by ``notification_*`` methods internally.

    No return value, and if any email in cc_list is not valid, ValidationError
    will be raised.
    """

    if not isinstance(cc_list, list):
        raise TypeError('cc_list should be a list object.')

    field = EmailField(required=True, error_messages={
        'required': 'Missing email address.',
        'invalid': '%(value)s is not a valid email address.',
    })

    for item in cc_list:
        field.clean(item)
コード例 #13
0
ファイル: forms.py プロジェクト: centipair/saas
 def clean(self):
     if 'username' in self.cleaned_data:
         username = self.cleaned_data["username"]
     else:
         raise forms.ValidationError(_("Username and Password required"))
     if 'password' in self.cleaned_data:
         password = self.cleaned_data["password"]
     else:
         raise forms.ValidationError(_("Username and Password required"))
     try:
         # User can login via email address too
         # Check whether the provided username is email
         email_check = EmailField()
         email = email_check.clean(username)
         if self.request.site.is_core:
             site_users = SiteUser.objects.filter(
                 email=email,
                 role=settings.SITE_ROLES['ADMIN'])
             site_user = site_users[0]
         else:
             site_user = SiteUser.objects.get(email=email,
                                              site_id=self.request.site.id)
         unique_username = site_user.user.username
     except SiteUser.DoesNotExist:
         # Email does not exist in the current site
         raise forms.ValidationError(_("Username or password incorrect"))
     except forms.ValidationError:
         # Not an email. Probably user is trying to login via username
         try:
             if self.request.site.is_core:
                 site_users = SiteUser.objects.filter(
                     username=username,
                     role=settings.SITE_ROLES['ADMIN'])
                 site_user = site_users[0]
             else:
                 site_user = SiteUser.objects.get(
                     username=username,
                     site_id=self.request.site.id)
             unique_username = site_user.user.username
         except SiteUser.DoesNotExist:
             #User name does not exist in current database
             raise forms.ValidationError(
                 _("Username or password incorrect"))
     user = authenticate(username=unique_username, password=password)
     if user is not None:
         if user.is_active:
             login(self.request, user)
         else:
             raise forms.ValidationError(
                 _("This account is deactivated."))
     else:
         raise forms.ValidationError(
             _("Username or password incorrect"))
コード例 #14
0
ファイル: test_emailfield.py プロジェクト: Birama0810/Django
 def test_emailfield_1(self):
     f = EmailField()
     self.assertWidgetRendersTo(f, '<input type="email" name="f" id="id_f" required>')
     with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
         f.clean('')
     with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
         f.clean(None)
     self.assertEqual('*****@*****.**', f.clean('*****@*****.**'))
     with self.assertRaisesMessage(ValidationError, "'Enter a valid email address.'"):
         f.clean('foo')
     self.assertEqual(
         '[email protected]\xe4\xf6\xfc\xdfabc.part.com',
         f.clean('[email protected]äöüßabc.part.com')
     )
コード例 #15
0
ファイル: test_emailfield.py プロジェクト: ArcTanSusan/django
 def test_emailfield_1(self):
     f = EmailField()
     self.assertWidgetRendersTo(f, '<input type="email" name="f" id="id_f" required>')
     with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
         f.clean('')
     with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
         f.clean(None)
     self.assertEqual('*****@*****.**', f.clean('*****@*****.**'))
     with self.assertRaisesMessage(ValidationError, "'Enter a valid email address.'"):
         f.clean('foo')
     self.assertEqual(
         '[email protected]\xe4\xf6\xfc\xdfabc.part.com',
         f.clean('[email protected]äöüßabc.part.com')
     )
コード例 #16
0
def clean_address_list(addresses, field_name=None):
    if (addresses is None or len(addresses) == 0) and field_name is None:
        return []
    if not isinstance(addresses, list):
        addresses = addresses.split(',')
    field_ = EmailField()
    try:
        return [field_.clean(addr) for addr in addresses]
    except ValidationError:
        raise ValidationError(
            _('Enter a valid comma separated '
              'list of email addresses for '
              'field {}.'.format(field_name)))
コード例 #17
0
ファイル: test_emailfield.py プロジェクト: ArcTanSusan/django
 def test_emailfield_not_required(self):
     f = EmailField(required=False)
     self.assertEqual('', f.clean(''))
     self.assertEqual('', f.clean(None))
     self.assertEqual('*****@*****.**', f.clean('*****@*****.**'))
     self.assertEqual('*****@*****.**', f.clean('      [email protected]  \t   \t '))
     with self.assertRaisesMessage(ValidationError, "'Enter a valid email address.'"):
         f.clean('foo')
コード例 #18
0
ファイル: test_emailfield.py プロジェクト: Birama0810/Django
 def test_emailfield_not_required(self):
     f = EmailField(required=False)
     self.assertEqual('', f.clean(''))
     self.assertEqual('', f.clean(None))
     self.assertEqual('*****@*****.**', f.clean('*****@*****.**'))
     self.assertEqual('*****@*****.**', f.clean('      [email protected]  \t   \t '))
     with self.assertRaisesMessage(ValidationError, "'Enter a valid email address.'"):
         f.clean('foo')
コード例 #19
0
    def clean(self):
        """called in `save()`
        """
        emails = functions.split_list(self.preapproved_emails)
        email_field = EmailField()
        try:
            map(lambda v: email_field.clean(v), emails)
        except exceptions.ValidationError:
            raise exceptions.ValidationError(_("Please give a list of valid email addresses."))
        self.preapproved_emails = " " + "\n".join(emails) + " "

        domains = functions.split_list(self.preapproved_email_domains)
        domain_field = DomainNameField()
        try:
            map(lambda v: domain_field.clean(v), domains)
        except exceptions.ValidationError:
            raise exceptions.ValidationError(_("Please give a list of valid email domain names."))
        self.preapproved_email_domains = " " + "\n".join(domains) + " "
コード例 #20
0
ファイル: user.py プロジェクト: DeltaDeveloper/openode
    def clean(self):
        """called in `save()`
        """
        emails = functions.split_list(self.preapproved_emails)
        email_field = EmailField()
        try:
            map(lambda v: email_field.clean(v), emails)
        except exceptions.ValidationError:
            raise exceptions.ValidationError(
                _('Please give a list of valid email addresses.'))
        self.preapproved_emails = ' ' + '\n'.join(emails) + ' '

        domains = functions.split_list(self.preapproved_email_domains)
        domain_field = DomainNameField()
        try:
            map(lambda v: domain_field.clean(v), domains)
        except exceptions.ValidationError, e:
            raise e
コード例 #21
0
ファイル: user.py プロジェクト: Antonytm/askbot-devel
    def clean(self):
        """called in `save()`
        """
        emails = functions.split_list(self.preapproved_emails)
        email_field = EmailField()
        try:
            map(lambda v: email_field.clean(v), emails)
        except exceptions.ValidationError:
            raise exceptions.ValidationError(
                _('Please give a list of valid email addresses.')
            )
        self.preapproved_emails = ' ' + '\n'.join(emails) + ' '

        domains = functions.split_list(self.preapproved_email_domains)
        from askbot.forms import DomainNameField
        domain_field = DomainNameField()
        try:
            map(lambda v: domain_field.clean(v), domains)
        except exceptions.ValidationError:
            raise exceptions.ValidationError(
                _('Please give a list of valid email domain names.')
            )
        self.preapproved_email_domains = ' ' + '\n'.join(domains) + ' '
コード例 #22
0
ファイル: test_emailfield.py プロジェクト: ArcTanSusan/django
 def test_emailfield_strip_on_none_value(self):
     f = EmailField(required=False, empty_value=None)
     self.assertIsNone(f.clean(None))
コード例 #23
0
ファイル: test_emailfield.py プロジェクト: Birama0810/Django
 def test_email_regexp_for_performance(self):
     f = EmailField()
     # Check for runaway regex security problem. This will take a long time
     # if the security fix isn't in place.
     addr = '[email protected]'
     self.assertEqual(addr, f.clean(addr))
コード例 #24
0
ファイル: test_emailfield.py プロジェクト: ArcTanSusan/django
 def test_email_regexp_for_performance(self):
     f = EmailField()
     # Check for runaway regex security problem. This will take a long time
     # if the security fix isn't in place.
     addr = '[email protected]'
     self.assertEqual(addr, f.clean(addr))
コード例 #25
0
ファイル: test_emailfield.py プロジェクト: Birama0810/Django
 def test_emailfield_strip_on_none_value(self):
     f = EmailField(required=False, empty_value=None)
     self.assertIsNone(f.clean(''))
     self.assertIsNone(f.clean(None))