mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
Add honeypot and challenge to signup form
This commit is contained in:
@@ -190,9 +190,9 @@ window.Discourse.User.reopenClass
|
||||
error: (xhr) -> promise.reject(xhr)
|
||||
promise
|
||||
|
||||
createAccount: (name, email, password, username) ->
|
||||
createAccount: (name, email, password, username, passwordConfirm, challenge) ->
|
||||
$.ajax
|
||||
url: '/users'
|
||||
dataType: 'json'
|
||||
data: {name: name, email: email, password: password, username: username}
|
||||
data: {name: name, email: email, password: password, username: username, password_confirmation: passwordConfirm, challenge: challenge}
|
||||
type: 'POST'
|
||||
|
||||
@@ -49,6 +49,14 @@
|
||||
</tr>
|
||||
{{/if}}
|
||||
|
||||
<tr class="password-confirmation">
|
||||
<td><label for='new-account-password-confirmation'>Password Again</label></td>
|
||||
<td>
|
||||
{{view Ember.TextField valueBinding="view.accountPasswordConfirm" type="password" id="new-account-password-confirmation"}}
|
||||
{{view Ember.TextField valueBinding="view.accountChallenge" id="new-account-challenge"}}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -3,6 +3,8 @@ window.Discourse.CreateAccountView = window.Discourse.ModalBodyView.extend Disco
|
||||
title: Em.String.i18n('create_account.title')
|
||||
uniqueUsernameValidation: null
|
||||
complete: false
|
||||
accountPasswordConfirm: 0
|
||||
accountChallenge: 0
|
||||
|
||||
|
||||
submitDisabled: (->
|
||||
@@ -22,6 +24,8 @@ window.Discourse.CreateAccountView = window.Discourse.ModalBodyView.extend Disco
|
||||
# If blank, fail without a reason
|
||||
return Discourse.InputValidation.create(failed: true) if @blank('accountName')
|
||||
|
||||
@fetchConfirmationValue() if @get('accountPasswordConfirm') == 0
|
||||
|
||||
# If too short
|
||||
return Discourse.InputValidation.create(failed: true, reason: Em.String.i18n('user.name.too_short')) if @get('accountName').length < 3
|
||||
|
||||
@@ -120,13 +124,22 @@ window.Discourse.CreateAccountView = window.Discourse.ModalBodyView.extend Disco
|
||||
).property('accountPassword')
|
||||
|
||||
|
||||
fetchConfirmationValue: ->
|
||||
$.ajax
|
||||
url: '/users/hp.json',
|
||||
success: (json) =>
|
||||
@set('accountPasswordConfirm', json.value)
|
||||
@set('accountChallenge', json.challenge.split("").reverse().join(""))
|
||||
|
||||
createAccount: ->
|
||||
name = @get('accountName')
|
||||
email = @get('accountEmail')
|
||||
password = @get('accountPassword')
|
||||
username = @get('accountUsername')
|
||||
passwordConfirm = @get('accountPasswordConfirm')
|
||||
challenge = @get('accountChallenge')
|
||||
|
||||
Discourse.User.createAccount(name, email, password, username).then (result) =>
|
||||
Discourse.User.createAccount(name, email, password, username, passwordConfirm, challenge).then (result) =>
|
||||
|
||||
if result.success
|
||||
@flash(result.message)
|
||||
|
||||
Reference in New Issue
Block a user