summary refs log tree commit diff
diff options
context:
space:
mode:
authorKegan Dougal <kegan@matrix.org>2014-09-05 13:56:36 -0700
committerKegan Dougal <kegan@matrix.org>2014-09-05 13:56:36 -0700
commit130458385e919d886fcdfc4203354e93e9e8f1b1 (patch)
treeadeeb7058a9722b04f84230e2e75ac90567b4c9b
parentAdded basic captcha, not hooked up (diff)
downloadsynapse-130458385e919d886fcdfc4203354e93e9e8f1b1.tar.xz
Modified matrixService.register to specify if captcha results should be sent with the registration request. This is toggleable via useCaptcha in register-controller.
-rw-r--r--webclient/components/matrix/matrix-service.js26
-rw-r--r--webclient/login/register-controller.js8
2 files changed, 28 insertions, 6 deletions
diff --git a/webclient/components/matrix/matrix-service.js b/webclient/components/matrix/matrix-service.js
index 8a0223979c..4754dc87da 100644
--- a/webclient/components/matrix/matrix-service.js
+++ b/webclient/components/matrix/matrix-service.js
@@ -84,15 +84,33 @@ angular.module('matrixService', [])
         prefix: prefixPath,
 
         // Register an user
-        register: function(user_name, password, threepidCreds) {
+        register: function(user_name, password, threepidCreds, useCaptcha) {         
             // The REST path spec
             var path = "/register";
-
-            return doRequest("POST", path, undefined, {
+            
+            var data = {
                  user_id: user_name,
                  password: password,
                  threepidCreds: threepidCreds
-            });
+            };
+            
+            if (useCaptcha) {
+                // Not all home servers will require captcha on signup, but if this flag is checked,
+                // send captcha information.
+                // TODO: Might be nice to make this a bit more flexible..
+                var challengeToken = Recaptcha.get_challenge();
+                var captchaEntry = Recaptcha.get_response();
+                var captchaType = "m.login.recaptcha";
+                
+                data.captcha = {
+                    type: captchaType,
+                    challenge: challengeToken,
+                    response: captchaEntry
+                };
+                console.log("Sending Captcha info: " + JSON.stringify(data.captcha));
+            }   
+
+            return doRequest("POST", path, undefined, data);
         },
 
         // Create a room
diff --git a/webclient/login/register-controller.js b/webclient/login/register-controller.js
index 1c1f4c42f3..9d02f274df 100644
--- a/webclient/login/register-controller.js
+++ b/webclient/login/register-controller.js
@@ -19,6 +19,8 @@ angular.module('RegisterController', ['matrixService'])
                                     function($scope, $rootScope, $location, matrixService, eventStreamService) {
     'use strict';
     
+    var useCaptcha = false;
+    
     // FIXME: factor out duplication with login-controller.js
     
     // Assume that this is hosted on the home server, in which case the URL
@@ -87,7 +89,7 @@ angular.module('RegisterController', ['matrixService'])
     };
 
     $scope.registerWithMxidAndPassword = function(mxid, password, threepidCreds) {
-        matrixService.register(mxid, password, threepidCreds).then(
+        matrixService.register(mxid, password, threepidCreds, useCaptcha).then(
             function(response) {
                 $scope.feedback = "Success";
                 // Update the current config 
@@ -154,7 +156,9 @@ angular.module('RegisterController', ['matrixService'])
 	};
 
 	$scope.init = function() {
-	    setupCaptcha();
+        if (useCaptcha) {
+	        setupCaptcha();
+        }
 	};
     
 }]);