diff --git a/templates/registration/registration_form.html b/templates/registration/registration_form.html index 3574f46..89ee976 100644 --- a/templates/registration/registration_form.html +++ b/templates/registration/registration_form.html @@ -76,6 +76,7 @@ {% endif %} +
Log in diff --git a/utils/views.py b/utils/views.py index 2c37a1a..703c7d5 100644 --- a/utils/views.py +++ b/utils/views.py @@ -1,3 +1,7 @@ +import requests + +from django.conf import settings +from django.http import HttpResponseBadRequest from registration.backends.default.views import RegistrationView from utils.forms import SniptRegistrationForm @@ -8,5 +12,21 @@ class SniptRegistrationView(RegistrationView): """ form_class = SniptRegistrationForm + def dispatch(self, request, *args, **kwargs): + + if request.method == 'POST': + payload = { + 'secret': settings.RECAPTCHA_SECRET, + 'response': request.POST['g-recaptcha-response'], + 'remoteip': request.META.get('REMOTE_ADDR') + } + r = requests.post('https://www.google.com/recaptcha/api/siteverify', + data=payload) + + if not r.json()['success']: + return HttpResponseBadRequest() + + return super(RegistrationView, self).dispatch(request, *args, **kwargs) + def get_success_url(self, request, user): return '/{}/'.format(user.username)