From c0482c610a9ed64c6c96dbb59a52d38bff0145b4 Mon Sep 17 00:00:00 2001 From: Aaron Date: Sat, 1 Aug 2020 21:17:12 -0700 Subject: [PATCH] phone regex --- drfpasswordless/__init__.py | 2 +- drfpasswordless/__version__.py | 2 +- drfpasswordless/serializers.py | 8 ++++---- tests/models.py | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drfpasswordless/__init__.py b/drfpasswordless/__init__.py index 95981a0..fe39b02 100644 --- a/drfpasswordless/__init__.py +++ b/drfpasswordless/__init__.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- __title__ = 'drfpasswordless' -__version__ = '1.5.4' +__version__ = '1.5.5' __author__ = 'Aaron Ng' __license__ = 'MIT' __copyright__ = 'Copyright 2020 Aaron Ng' diff --git a/drfpasswordless/__version__.py b/drfpasswordless/__version__.py index ecfbcc9..95a5df9 100644 --- a/drfpasswordless/__version__.py +++ b/drfpasswordless/__version__.py @@ -1,3 +1,3 @@ -VERSION = (1, 5, 4) +VERSION = (1, 5, 5) __version__ = '.'.join(map(str, VERSION)) diff --git a/drfpasswordless/serializers.py b/drfpasswordless/serializers.py index 73f99b9..af40098 100644 --- a/drfpasswordless/serializers.py +++ b/drfpasswordless/serializers.py @@ -85,10 +85,10 @@ class MobileAuthSerializer(AbstractBaseAliasAuthenticationSerializer): def alias_type(self): return 'mobile' - phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', + phone_regex = RegexValidator(regex=r'^\+?[1-9]\d{1,14}$', message="Mobile number must be entered in the format:" " '+999999999'. Up to 15 digits allowed.") - mobile = serializers.CharField(validators=[phone_regex], max_length=15) + mobile = serializers.CharField(validators=[phone_regex], max_length=17) """ @@ -169,12 +169,12 @@ class AbstractBaseCallbackTokenSerializer(serializers.Serializer): Abstract class inspired by DRF's own token serializer. Returns a user if valid, None or a message if not. """ - phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', + phone_regex = RegexValidator(regex=r'^\+?[1-9]\d{1,14}$', message="Mobile number must be entered in the format:" " '+999999999'. Up to 15 digits allowed.") email = serializers.EmailField(required=False) # Needs to be required=false to require both. - mobile = serializers.CharField(required=False, validators=[phone_regex], max_length=15) + mobile = serializers.CharField(required=False, validators=[phone_regex], max_length=17) token = TokenField(min_length=6, max_length=6, validators=[token_age_validator]) def validate_alias(self, attrs): diff --git a/tests/models.py b/tests/models.py index 41dbef4..935d88c 100644 --- a/tests/models.py +++ b/tests/models.py @@ -3,7 +3,7 @@ from django.core.validators import RegexValidator from django.db import models -phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', +phone_regex = RegexValidator(regex=r'^\+?[1-9]\d{1,14}$', message="Mobile number must be entered in the format:" " '+999999999'. Up to 15 digits allowed.") @@ -12,7 +12,7 @@ class CustomUser(AbstractBaseUser): email = models.EmailField(max_length=255, unique=True, blank=True, null=True) email_verified = models.BooleanField(default=False) - mobile = models.CharField(validators=[phone_regex], max_length=15, unique=True, blank=True, null=True) + mobile = models.CharField(validators=[phone_regex], max_length=17, unique=True, blank=True, null=True) mobile_verified = models.BooleanField(default=False) objects = BaseUserManager()