Commits

dgrinberg committed 49d2b17

support for reCaptcha by adding user's IP, which is required

  • Participants
  • Parent commits 7b3e52b

Comments (0)

Files changed (1)

File registration/views.py

 def register(request, backend, success_url=None, form_class=None,
              disallowed_url='registration_disallowed',
              template_name='registration/registration_form.html',
-             extra_context=None):
+             extra_context=None,use_reCaptcha=False):
     """
     Allow a new user to register an account.
 
         A custom template to use. If not supplied, this will default
         to ``registration/registration_form.html``.
     
+    ``use_reCaptcha``
+        if reCaptcha is used, user's IP needs to be passed to a form 
+
     **Context:**
     
     ``form``
         form_class = backend.get_form_class(request)
 
     if request.method == 'POST':
-        form = form_class(data=request.POST, files=request.FILES)
+        if use_reCaptcha:
+            form = form_class(data=request.POST, files=request.FILES, initial={'captcha': request.META['REMOTE_ADDR']})
+        else:
+            form = form_class(data=request.POST, files=request.FILES)
         if form.is_valid():
             new_user = backend.register(request, **form.cleaned_data)
             if success_url is None:
             else:
                 return redirect(success_url)
     else:
-        form = form_class()
+        if use_reCaptcha:
+            form = form_class(initial={'captcha': request.META['REMOTE_ADDR']})
+        else:
+            form = form_class()
     
     if extra_context is None:
         extra_context = {}