Ejemplo n.º 1
0
    def post(self, request, *args, **kwargs):
        user = request.user
        if user.is_anonymous():
            form = UserForm(data=request.POST)
            if not form.is_valid():
                return render(request, "register.html", {'form': form})

            if not is_captcha_completed(request):
                form.add_error(None, "You must complete the reCaptcha to register!")
                return render(request, "register.html", {'form': form})

            if not is_valid_captcha(request):
                form.add_error(None, "You are a robot!")
                return render(request, "register.html", {'form': form})

            form.save()
            user = authenticate(username=request.POST['username'], password=request.POST['password1'])
            login(request, user)
            return HttpResponseRedirect("/")
        else:
            form = UserChangeForm(data=request.POST, instance=request.user)
            if not form.is_valid():
                return render(request, "user/user_update.html", {'form': form})

            clean_form = form.cleaned_data
            if clean_form['email']:
                user.email = clean_form['email']
            if clean_form['first_name']:
                user.first_name = clean_form['first_name']
            if clean_form['last_name']:
                user.last_name = clean_form['last_name']
            user.save()

            return HttpResponseRedirect("/account")
Ejemplo n.º 2
0
 def test_save_user(self):
     form = UserForm()
     form.email = "*****@*****.**"
     form.first_name = "Bob"
     form.last_name = "L'Eponge"
     form.password1 = "pass1"
     form.password2 = "pass2"
Ejemplo n.º 3
0
    def post(self, request, *args, **kwargs):
        user = request.user
        if user.is_anonymous():
            form = UserForm(data=request.POST)
            if form.is_valid():
                #Verify captcaha
                if not request.POST['g-recaptcha-response']:
                    form.add_error(None, "You must complete the reCaptcha to register!")
                    return render(request, "register.html", {'form': form})

                captcha_data = urllib.parse.urlencode({
                    'secret': settings.RECAPTCHA_PRIVATE_KEY,
                    'response': request.POST['g-recaptcha-response']})
                captcha_data = captcha_data.encode('utf-8')

                res = urllib.request.urlopen(
                    "https://www.google.com/recaptcha/api/siteverify",
                    captcha_data)
                res = res.read().decode('utf-8')
                if 'false' in res:
                    form.add_error(None, "You are a robot!")
                    return render(request, "register.html", {'form': form})

                user = form.save()        
                user = authenticate(username=request.POST['username'], password=request.POST['password1'])
                login(request, user)
                return HttpResponseRedirect("/")
            else:
                return render(request, "register.html", {'form': form})
        else:
            form = UserChangeForm(data=request.POST, instance=request.user)
            if not form.is_valid():
                return render(request, "user/user_update.html", {'form': form})

            clean_form = form.cleaned_data
            if clean_form['email']:
                user.email = clean_form['email']
            if clean_form['first_name']:
                user.first_name = clean_form['first_name']
            if clean_form['last_name']:
                user.last_name = clean_form['last_name']
            user.save()

            return HttpResponseRedirect("/account")