mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-11-23 15:48:11 -05:00
Prevent users from signing up with or changing to an email-like username
This commit is contained in:
parent
782aacf35e
commit
053ce34faf
4 changed files with 11 additions and 1 deletions
|
@ -287,6 +287,7 @@
|
||||||
email_good: "Email looks good!"
|
email_good: "Email looks good!"
|
||||||
name_taken: "Username already taken! Try {{suggestedName}}?"
|
name_taken: "Username already taken! Try {{suggestedName}}?"
|
||||||
name_available: "Username available!"
|
name_available: "Username available!"
|
||||||
|
name_is_email: "Username may not be an email"
|
||||||
choose_type: "Choose your account type:"
|
choose_type: "Choose your account type:"
|
||||||
teacher_type_1: "Teach programming using CodeCombat!"
|
teacher_type_1: "Teach programming using CodeCombat!"
|
||||||
teacher_type_2: "Set up your class"
|
teacher_type_2: "Set up your class"
|
||||||
|
|
|
@ -231,7 +231,7 @@ module.exports = class AccountSettingsView extends CocoView
|
||||||
$('.nano').nanoScroller({scrollTo: @$el.find('.has-error')})
|
$('.nano').nanoScroller({scrollTo: @$el.find('.has-error')})
|
||||||
else
|
else
|
||||||
noty
|
noty
|
||||||
text: res.responseText
|
text: res.responseJSON?.message or res.responseText
|
||||||
type: 'error'
|
type: 'error'
|
||||||
layout: 'topCenter'
|
layout: 'topCenter'
|
||||||
timeout: 5000
|
timeout: 5000
|
||||||
|
|
|
@ -146,6 +146,11 @@ module.exports = class BasicInfoView extends CocoView
|
||||||
})
|
})
|
||||||
|
|
||||||
forms.clearFormAlerts(@$el)
|
forms.clearFormAlerts(@$el)
|
||||||
|
|
||||||
|
if data.name and forms.validateEmail(data.name)
|
||||||
|
forms.setErrorToProperty(@$el, 'name', $.i18n.t('signup.name_is_email'))
|
||||||
|
return false
|
||||||
|
|
||||||
res = tv4.validateMultiple data, @formSchema()
|
res = tv4.validateMultiple data, @formSchema()
|
||||||
forms.applyErrorsToForm(@$('form'), res.errors) unless res.valid
|
forms.applyErrorsToForm(@$('form'), res.errors) unless res.valid
|
||||||
return res.valid
|
return res.valid
|
||||||
|
|
|
@ -361,6 +361,10 @@ UserSchema.pre('save', (next) ->
|
||||||
@set('email', undefined)
|
@set('email', undefined)
|
||||||
@set('emailLower', undefined)
|
@set('emailLower', undefined)
|
||||||
if name = @get('name')
|
if name = @get('name')
|
||||||
|
filter = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,63}$/i # https://news.ycombinator.com/item?id=5763990
|
||||||
|
if filter.test(name)
|
||||||
|
return next(new errors.UnprocessableEntity('Name may not be an email'))
|
||||||
|
|
||||||
@set('nameLower', name.toLowerCase())
|
@set('nameLower', name.toLowerCase())
|
||||||
else
|
else
|
||||||
@set('name', undefined)
|
@set('name', undefined)
|
||||||
|
|
Loading…
Reference in a new issue