def post(self, request): if 'email' not in request.data: return Response({'message': 'Required parameters are missing.'}, status=status.HTTP_400_BAD_REQUEST) try: user_profile = UserProfile.objects.get( user__username=request.data['email']) except UserProfile.DoesNotExist: return Response( { 'message': 'There is no profile with this email address. Try entering the correct email address or signing up again.' }, status=status.HTTP_400_BAD_REQUEST) if user_profile.is_profile_verified: return Response( { 'message': 'Your profile is already verified. You now log in with your account.' }, status=status.HTTP_400_BAD_REQUEST) send_user_verification_email(user_profile.user, user_profile.verification_key) return Response( { "message": "We have send you your verification email again. It may take up to 5 minutes to arrive. Make sure to also check your junk or spam folder." }, status=status.HTTP_200_OK)
def post(self, request): required_params = [ 'email', 'password', 'first_name', 'last_name', 'location', 'send_newsletter', ] for param in required_params: if param not in request.data: raise ValidationError('Required parameter is missing') if User.objects.filter(username=request.data['email']).exists(): raise ValidationError("Email already in use.") location = get_location(request.data['location']) user = User.objects.create(username=request.data['email'], email=request.data['email'], first_name=request.data['first_name'], last_name=request.data['last_name'], is_active=True) user.set_password(request.data['password']) user.save() url_slug = (user.first_name + user.last_name).lower() + str(user.id) # Get location user_profile = UserProfile.objects.create( user=user, location=location, url_slug=url_slug, name=request.data['first_name'] + " " + request.data['last_name'], verification_key=uuid.uuid4(), send_newsletter=request.data['send_newsletter']) if "from_tutorial" in request.data: user_profile.from_tutorial = request.data['from_tutorial'] if "is_activist" in request.data: user_profile.is_activist = request.data['is_activist'] if "last_completed_tutorial_step" in request.data: user_profile.last_completed_tutorial_step = request.data[ 'last_completed_tutorial_step'] if settings.AUTO_VERIFY == True: user_profile.is_profile_verified = True message = "Congratulations! Your account has been created" else: send_user_verification_email(user, user_profile.verification_key) message = "You're almost done! We have sent an email with a confirmation link to {}. Finish creating your account by clicking the link.".format( user.email) # NOQA user_profile.save() return Response({'success': message}, status=status.HTTP_201_CREATED)
def post(self, request): required_params = [ 'email', 'password', 'first_name', 'last_name', 'country', 'city', 'email_project_suggestions', 'email_updates_on_projects' ] for param in required_params: if param not in request.data: raise ValidationError('Required parameter is missing') if User.objects.filter(username=request.data['email']).exists(): raise ValidationError("Email already in use.") user = User.objects.create(username=request.data['email'], email=request.data['email'], first_name=request.data['first_name'], last_name=request.data['last_name'], is_active=True) user.set_password(request.data['password']) user.save() url_slug = (user.first_name + user.last_name).lower() + str(user.id) user_profile = UserProfile.objects.create( user=user, country=request.data['country'], city=request.data['city'], url_slug=url_slug, name=request.data['first_name'] + " " + request.data['last_name'], verification_key=uuid.uuid4(), email_project_suggestions=request. data['email_project_suggestions'], email_updates_on_projects=request.data['email_updates_on_projects'] ) if settings.AUTO_VERIFY == True: user_profile.is_profile_verified = True user_profile.save() message = "Congratulations! Your account has been created" else: send_user_verification_email(user, user_profile.verification_key) message = "You're almost done! We have sent an email with a confirmation link to {}. Finish creating your account by clicking the link.".format( user.email) # NOQA return Response({'success': message}, status=status.HTTP_201_CREATED)