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();
+ }
};
}]);
|