Beispiel #1
0
    def post(self, request, *args, **kwargs):
        # Create a serializer with request.data
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        serializer.save()

        # Return the success message with OK HTTP status

        email = serializer.validated_data.get('email')

        if is_using_phone_number(email):
            phone_number = serializer.validated_data.get('phone_number')
            msg = "Password reset code has been sent."

            response_data = {
                'phone_number': phone_number.national_format,
                'sms_sent': True,
                'detail': msg
            }
            return Response(response_data, status=status.HTTP_200_OK)

        msg = _("Password reset e-mail has been sent.")
        response_data = {
            'detail': msg,
            'email_sent': True,
            'email': email,
        }
        return Response(response_data, status=status.HTTP_200_OK)
	def get_unique_phone_number(self, value):
		
		phone_numbers = get_phone_numbers(value)

		for numbObj in phone_numbers:
			if numbObj:
				unique_username = numbObj.user.email

				if is_using_phone_number(unique_username):
					return numbObj
		return None
	def _validate_phone_number(self, phone_number):
		if not phone_number_exists(phone_number):
			msg = _('Account with this phone number does not exists')
			raise serializers.ValidationError(msg)

		phone_numbers = get_phone_numbers(phone_number)

		for numbObj in phone_numbers:
			username = numbObj.user.email
			if is_using_phone_number(username):
				return numbObj

		return None
	def validate_email(self, email):
		
		self.is_phone_number  = is_using_phone_number(email)
		self.is_email_address = is_using_email_address(email)

		self.username = email
		if self.is_phone_number:
			return self.validate_phone_number(self.username)
		
		if allauth_settings.UNIQUE_EMAIL:
			if email and email_address_exists(email):
				msg = _("A user is already registered with this e-mail address.")
				raise serializers.ValidationError(msg)
		return self.username
	def validate(self, attrs):
		value = attrs.get('email')
		self.is_phone_number  = is_using_phone_number(value)
		self.is_email_address = is_using_email_address(value)
		
		user  = None
		if self.is_phone_number:
			phone_number = self._validate_phone_number(value)
			attrs['phone_number'] = phone_number
			user = phone_number.user

		elif self.is_email_address:
			user = self._validate_email(value)

		attrs['user'] = user
		return attrs
	def _validate_phone_number(self, phone_number, password):
				
		phone_numbers = get_phone_numbers(phone_number)
		phone_number = None
		email = None
		user  = None

		if phone_numbers:
			pass

		for numbObj in phone_numbers:
			unique_username = numbObj.user.email

			if is_using_phone_number(unique_username):
				email = unique_username
										
		user = authenticate(email=email, password=password)
		return user
	def validate(self, attrs):
		email    = attrs.get('email')
		password = attrs.get('password')
		self.is_phone_number  = is_using_phone_number(email)
		self.is_email_address = is_using_email_address(email)

		user     = None
		if self.is_email_address:
			user = self._validate_email(email, password)

		if self.is_phone_number:
			user = self._validate_phone_number(email, password)

		# Did we get back an user?
		self.can_authenticate(user)
		
		attrs['user'] = user
		return attrs
	def validate_email(self, value):
		# Create PasswordResetForm with the serializer
		email = value
		self.is_phone_number = is_using_phone_number(value)
		if self.is_phone_number:
			return self.validate_phone_number(value)
			
		if not email_address_exists(email):
			msg = _('Account with this email address does not exists.')
			raise serializers.ValidationError(msg)

		#if  not email_is_verified(email):
		#	msg = _('You must confirm your account before you can change a password.')
		#	raise serializers.ValidationError(msg)

		self.reset_form = CustomPasswordResetForm(data=self.initial_data)
		if not self.reset_form.is_valid():
			raise serializers.ValidationError(self.reset_form.errors)

		return value
Beispiel #9
0
    def create(self, request, *args, **kwargs):
        username = request.data.get('email', None)
        self.is_phone_number = is_using_phone_number(username)
        self.is_email_address = is_using_email_address(username)

        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        user = self.perform_create(serializer)
        user.set_password(request.data['password'])
        user.save()

        django_login(self.request,
                     user,
                     backend='django.contrib.auth.backends.ModelBackend')

        headers = self.get_success_headers(serializer.data)

        return Response(self.get_response_data(user),
                        status=status.HTTP_201_CREATED,
                        headers=headers)
Beispiel #10
0
    def post(self, request, *args, **kwargs):
        email = request.data.get('email')
        self.is_phone_number = is_using_phone_number(email)
        self.is_email_address = is_using_email_address(email)

        serializer = self.get_serializer(data=request.data)

        serializer.is_valid(raise_exception=True)

        self.user = serializer.validated_data.get('user', None)

        if self.user:
            if self.is_phone_number:
                self.phone_number = serializer.validated_data.get(
                    'phone_number')
                self.send_phone_number_confirmation(self.phone_number)

            elif self.is_email_address:
                self.send_email_confirmation(self.user)

        response_data = self.get_response()
        return Response(response_data, status=status.HTTP_201_CREATED)