Commits

dgrinberg committed 49d2b17

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

Comments (0)

Files changed (1)

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 = {}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.