diff --git a/client/js/controllers/user_registration_controller.js b/client/js/controllers/user_registration_controller.js index 89cfd8cd..72a52b5e 100644 --- a/client/js/controllers/user_registration_controller.js +++ b/client/js/controllers/user_registration_controller.js @@ -30,7 +30,7 @@ class UserRegistrationController { user.email = e.detail.email; user.password = e.detail.password; const isLoggedIn = api.isLoggedIn(); - user.save() + user.save(e.detail.recaptchaToken) .then(() => { if (isLoggedIn) { return Promise.resolve(); diff --git a/client/js/models/user.js b/client/js/models/user.js index 28dc3efe..e682f4b4 100644 --- a/client/js/models/user.js +++ b/client/js/models/user.js @@ -107,7 +107,7 @@ class User extends events.EventTarget { }); } - save() { + save(recaptchaToken) { const files = []; const detail = { version: this._version }; const transient = this._orig._name; @@ -131,13 +131,16 @@ class User extends events.EventTarget { if (this._password) { detail.password = this._password; } + if (!api.isLoggedIn()) { + detail.recaptchaToken = recaptchaToken; + } let promise = this._orig._name ? api.put( - uri.formatApiLink("user", this._orig._name), - detail, - files - ) + uri.formatApiLink("user", this._orig._name), + detail, + files + ) : api.post(uri.formatApiLink("users"), detail, files); return promise.then((response) => { diff --git a/client/js/views/registration_view.js b/client/js/views/registration_view.js index c14a13fe..f2bbcb7d 100644 --- a/client/js/views/registration_view.js +++ b/client/js/views/registration_view.js @@ -22,7 +22,10 @@ class RegistrationView extends events.EventTarget { views.decorateValidator(this._formNode); this._formNode.addEventListener("submit", (e) => this._evtSubmit(e)); this.setRecaptchaToken = this.setRecaptchaToken.bind(this); - this.renderRecaptcha(); + + // Show the recaptcha for anonymous users. + if (!api.isLoggedIn()) + this.renderRecaptcha(); } renderRecaptcha() {