43 lines
1.2 KiB
JavaScript
43 lines
1.2 KiB
JavaScript
async function register() {
|
|
if (document.getElementById('pass').value.length < 10) {
|
|
alert('Password has to be at least 10 characters long')
|
|
return
|
|
}
|
|
if (document.getElementById('user').value.length > 25) {
|
|
alert('Username is too long!')
|
|
return
|
|
}
|
|
if (document.getElementById('user').value.search('@') !== -1) {
|
|
alert("User cannot contain '@' character!")
|
|
return
|
|
}
|
|
let r = await post('/register', {
|
|
user: document.getElementById('user').value,
|
|
pass: document.getElementById('pass').value,
|
|
r: REDIRECT_URL,
|
|
})
|
|
if (
|
|
!r.url.endsWith('/user?success=true') &&
|
|
!r.url.endsWith(REDIRECT_URL)
|
|
) {
|
|
if (r.url.endsWith('already_exists')) {
|
|
alert(
|
|
'An account with that name already exists! Did you mean to login?'
|
|
)
|
|
return
|
|
}
|
|
//fallback
|
|
document.getElementById('pass').value = ''
|
|
console.error('registration failed')
|
|
alert('Registration failed')
|
|
return
|
|
}
|
|
window.location = REDIRECT_URL || '/user'
|
|
}
|
|
|
|
function passkeydown(e) {
|
|
if (e.code === 'Enter') {
|
|
register()
|
|
}
|
|
}
|