Migrating auth serializers
parent
8d86c42fa0
commit
81454426f9
|
@ -22,15 +22,16 @@ from enum import Enum
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
|
from taiga.base.api import validators
|
||||||
from taiga.base.api import serializers
|
from taiga.base.api import serializers
|
||||||
from taiga.base.api import viewsets
|
from taiga.base.api import viewsets
|
||||||
from taiga.base.decorators import list_route
|
from taiga.base.decorators import list_route
|
||||||
from taiga.base import exceptions as exc
|
from taiga.base import exceptions as exc
|
||||||
from taiga.base import response
|
from taiga.base import response
|
||||||
|
|
||||||
from .serializers import PublicRegisterSerializer
|
from .validators import PublicRegisterValidator
|
||||||
from .serializers import PrivateRegisterForExistingUserSerializer
|
from .validators import PrivateRegisterForExistingUserValidator
|
||||||
from .serializers import PrivateRegisterForNewUserSerializer
|
from .validators import PrivateRegisterForNewUserValidator
|
||||||
|
|
||||||
from .services import private_register_for_existing_user
|
from .services import private_register_for_existing_user
|
||||||
from .services import private_register_for_new_user
|
from .services import private_register_for_new_user
|
||||||
|
@ -44,7 +45,7 @@ from .permissions import AuthPermission
|
||||||
def _parse_data(data:dict, *, cls):
|
def _parse_data(data:dict, *, cls):
|
||||||
"""
|
"""
|
||||||
Generic function for parse user data using
|
Generic function for parse user data using
|
||||||
specified serializer on `cls` keyword parameter.
|
specified validator on `cls` keyword parameter.
|
||||||
|
|
||||||
Raises: RequestValidationError exception if
|
Raises: RequestValidationError exception if
|
||||||
some errors found when data is validated.
|
some errors found when data is validated.
|
||||||
|
@ -52,21 +53,21 @@ def _parse_data(data:dict, *, cls):
|
||||||
Returns the parsed data.
|
Returns the parsed data.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
serializer = cls(data=data)
|
validator = cls(data=data)
|
||||||
if not serializer.is_valid():
|
if not validator.is_valid():
|
||||||
raise exc.RequestValidationError(serializer.errors)
|
raise exc.RequestValidationError(validator.errors)
|
||||||
return serializer.data
|
return validator.data
|
||||||
|
|
||||||
# Parse public register data
|
# Parse public register data
|
||||||
parse_public_register_data = partial(_parse_data, cls=PublicRegisterSerializer)
|
parse_public_register_data = partial(_parse_data, cls=PublicRegisterValidator)
|
||||||
|
|
||||||
# Parse private register data for existing user
|
# Parse private register data for existing user
|
||||||
parse_private_register_for_existing_user_data = \
|
parse_private_register_for_existing_user_data = \
|
||||||
partial(_parse_data, cls=PrivateRegisterForExistingUserSerializer)
|
partial(_parse_data, cls=PrivateRegisterForExistingUserValidator)
|
||||||
|
|
||||||
# Parse private register data for new user
|
# Parse private register data for new user
|
||||||
parse_private_register_for_new_user_data = \
|
parse_private_register_for_new_user_data = \
|
||||||
partial(_parse_data, cls=PrivateRegisterForNewUserSerializer)
|
partial(_parse_data, cls=PrivateRegisterForNewUserValidator)
|
||||||
|
|
||||||
|
|
||||||
class RegisterTypeEnum(Enum):
|
class RegisterTypeEnum(Enum):
|
||||||
|
@ -81,10 +82,10 @@ def parse_register_type(userdata:dict) -> str:
|
||||||
"""
|
"""
|
||||||
# Create adhoc inner serializer for avoid parse
|
# Create adhoc inner serializer for avoid parse
|
||||||
# manually the user data.
|
# manually the user data.
|
||||||
class _serializer(serializers.Serializer):
|
class _validator(validators.Validator):
|
||||||
existing = serializers.BooleanField()
|
existing = serializers.BooleanField()
|
||||||
|
|
||||||
instance = _serializer(data=userdata)
|
instance = _validator(data=userdata)
|
||||||
if not instance.is_valid():
|
if not instance.is_valid():
|
||||||
raise exc.RequestValidationError(instance.errors)
|
raise exc.RequestValidationError(instance.errors)
|
||||||
|
|
||||||
|
|
|
@ -16,16 +16,17 @@
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
from django.core import validators
|
from django.core import validators as core_validators
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
|
|
||||||
from taiga.base.api import serializers
|
from taiga.base.api import serializers
|
||||||
|
from taiga.base.api import validators
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
|
||||||
class BaseRegisterSerializer(serializers.Serializer):
|
class BaseRegisterValidator(validators.Validator):
|
||||||
full_name = serializers.CharField(max_length=256)
|
full_name = serializers.CharField(max_length=256)
|
||||||
email = serializers.EmailField(max_length=255)
|
email = serializers.EmailField(max_length=255)
|
||||||
username = serializers.CharField(max_length=255)
|
username = serializers.CharField(max_length=255)
|
||||||
|
@ -33,7 +34,7 @@ class BaseRegisterSerializer(serializers.Serializer):
|
||||||
|
|
||||||
def validate_username(self, attrs, source):
|
def validate_username(self, attrs, source):
|
||||||
value = attrs[source]
|
value = attrs[source]
|
||||||
validator = validators.RegexValidator(re.compile('^[\w.-]+$'), _("invalid username"), "invalid")
|
validator = core_validators.RegexValidator(re.compile('^[\w.-]+$'), _("invalid username"), "invalid")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
validator(value)
|
validator(value)
|
||||||
|
@ -43,15 +44,15 @@ class BaseRegisterSerializer(serializers.Serializer):
|
||||||
return attrs
|
return attrs
|
||||||
|
|
||||||
|
|
||||||
class PublicRegisterSerializer(BaseRegisterSerializer):
|
class PublicRegisterValidator(BaseRegisterValidator):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class PrivateRegisterForNewUserSerializer(BaseRegisterSerializer):
|
class PrivateRegisterForNewUserValidator(BaseRegisterValidator):
|
||||||
token = serializers.CharField(max_length=255, required=True)
|
token = serializers.CharField(max_length=255, required=True)
|
||||||
|
|
||||||
|
|
||||||
class PrivateRegisterForExistingUserSerializer(serializers.Serializer):
|
class PrivateRegisterForExistingUserValidator(validators.Validator):
|
||||||
username = serializers.CharField(max_length=255)
|
username = serializers.CharField(max_length=255)
|
||||||
password = serializers.CharField(min_length=4)
|
password = serializers.CharField(min_length=4)
|
||||||
token = serializers.CharField(max_length=255, required=True)
|
token = serializers.CharField(max_length=255, required=True)
|
Loading…
Reference in New Issue