Modified matrixService.register to specify if captcha results should be sent with the registration request. This is toggleable via useCaptcha in register-controller.

This commit is contained in:
Kegan Dougal 2014-09-05 13:56:36 -07:00
parent 0280176ccd
commit 130458385e
2 changed files with 28 additions and 6 deletions

View File

@ -84,15 +84,33 @@ angular.module('matrixService', [])
prefix: prefixPath, prefix: prefixPath,
// Register an user // Register an user
register: function(user_name, password, threepidCreds) { register: function(user_name, password, threepidCreds, useCaptcha) {
// The REST path spec // The REST path spec
var path = "/register"; var path = "/register";
return doRequest("POST", path, undefined, { var data = {
user_id: user_name, user_id: user_name,
password: password, password: password,
threepidCreds: threepidCreds 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 // Create a room

View File

@ -19,6 +19,8 @@ angular.module('RegisterController', ['matrixService'])
function($scope, $rootScope, $location, matrixService, eventStreamService) { function($scope, $rootScope, $location, matrixService, eventStreamService) {
'use strict'; 'use strict';
var useCaptcha = false;
// FIXME: factor out duplication with login-controller.js // FIXME: factor out duplication with login-controller.js
// Assume that this is hosted on the home server, in which case the URL // 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) { $scope.registerWithMxidAndPassword = function(mxid, password, threepidCreds) {
matrixService.register(mxid, password, threepidCreds).then( matrixService.register(mxid, password, threepidCreds, useCaptcha).then(
function(response) { function(response) {
$scope.feedback = "Success"; $scope.feedback = "Success";
// Update the current config // Update the current config
@ -154,7 +156,9 @@ angular.module('RegisterController', ['matrixService'])
}; };
$scope.init = function() { $scope.init = function() {
if (useCaptcha) {
setupCaptcha(); setupCaptcha();
}
}; };
}]); }]);