made sure name is valid when registering

added a message tot he user when he needs to change his display name
This commit is contained in:
Jack 2020-06-06 16:48:22 +01:00
parent df2653b225
commit ad8aa4d730
4 changed files with 97 additions and 44 deletions

View file

@ -421,9 +421,10 @@ a:hover {
}
#menu .button .text {
width: 0;
overflow: hidden;
/* transition: .25s; */
font-size: .65rem;
line-height: .65rem;
align-self: center;
margin-left: .25rem;
}
/* #menu .button:hover .text{

View file

@ -28,6 +28,9 @@
</head>
<body>
<div class="nameChangeMessage" style="background-color: var(--main-color);padding: 0.5rem;text-align: center;color: var(--bg-color);display:none;">
Important information about your account. Please click this message.
</div>
<div class="notification">Signed in</div>
<div id="versionHistoryWrapper" class="hidden">
<div id="versionHistory">
@ -113,6 +116,7 @@
<div class="icon">
<i class="fas fa-fw fa-user"></i>
</div>
<div class="text"></div>
</div>
<div class="button login" tabindex="2" href="/login" onclick="this.blur();">
<div class="icon">

View file

@ -49,56 +49,61 @@ function signIn() {
function signUp() {
$(".pageLogin .preloader").removeClass('hidden');
let name = $(".pageLogin .register input")[0].value;
let nname = $(".pageLogin .register input")[0].value;
let email = $(".pageLogin .register input")[1].value;
let password = $(".pageLogin .register input")[2].value;
let passwordVerify = $(".pageLogin .register input")[3].value;
if (name == "") {
showNotification("Name is required", 3000);
$(".pageLogin .preloader").addClass('hidden');
return;
}
const namecheck = firebase.functions().httpsCallable('checkNameAvailability')
if (password != passwordVerify) {
showNotification("Passwords do not match", 3000);
$(".pageLogin .preloader").addClass('hidden');
return;
}
firebase.auth().createUserWithEmailAndPassword(email, password).then(user => {
// Account has been created here.
let usr = user.user;
usr.updateProfile({
displayName: name
}).then(function() {
// Update successful.
showNotification("Account created", 2000);
try{
firebase.analytics().logEvent("accountCreated", usr.uid);
}catch(e){
console.log("Analytics unavailable");
}
namecheck({name:nname}).then(d => {
if(d.data === 0){
showNotification("Name unavailable", 3000);
$(".pageLogin .preloader").addClass('hidden');
changePage('account');
}).catch(function(error) {
// An error happened.
usr.delete().then(function() {
// User deleted.
showNotification("Name invalid", 2000);
$(".pageLogin .preloader").addClass('hidden');
return;
}else if(d.data === 1){
if (password != passwordVerify) {
showNotification("Passwords do not match", 3000);
$(".pageLogin .preloader").addClass('hidden');
return;
}
firebase.auth().createUserWithEmailAndPassword(email, password).then(user => {
// Account has been created here.
let usr = user.user;
usr.updateProfile({
displayName: name
}).then(function() {
// Update successful.
showNotification("Account created", 2000);
try{
firebase.analytics().logEvent("accountCreated", usr.uid);
}catch(e){
console.log("Analytics unavailable");
}
$(".pageLogin .preloader").addClass('hidden');
changePage('account');
}).catch(function(error) {
// An error happened.
usr.delete().then(function() {
// User deleted.
showNotification("Name invalid", 2000);
$(".pageLogin .preloader").addClass('hidden');
}).catch(function(error) {
// An error happened.
$(".pageLogin .preloader").addClass('hidden');
});
});
}).catch(function(error) {
// An error happened.
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
showNotification(errorMessage, 5000);
$(".pageLogin .preloader").addClass('hidden');
});
});
}).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
showNotification(errorMessage, 5000);
$(".pageLogin .preloader").addClass('hidden');
});
}
})
}
@ -127,6 +132,8 @@ firebase.auth().onAuthStateChanged(function(user) {
showNotification('Signed in', 1000);
$(".pageLogin .preloader").addClass('hidden');
updateAccountLoginButton();
verifyUsername();
$("#menu .button.account .text").text(displayName);
}
});

View file

@ -96,6 +96,47 @@ function getReleasesFromGitHub() {
})
}
function verifyUsername(){
// test = firebase.functions().httpsCallable('moveResults')
// test2 = firebase.functions().httpsCallable('getNames')
// test3 = firebase.functions().httpsCallable('checkNameAvailability')
const check = firebase.functions().httpsCallable('checkIfNeedsToChangeName')
check({uid: firebase.auth().currentUser.uid}).then(data => {
if(data.data === 1){
$('.nameChangeMessage').slideDown();
}else if(data.data === 2){
$('.nameChangeMessage').slideDown();
}
})
$('.nameChangeMessage').click(e => {
alert(`Im currently preparing the system to be ready for leaderboards and other awesome features - it looks like you need to change your display name.
It either contains special characters, or your display name is the same as someone elses and your account was made later.
Sorry for this inconvenience.
`);
let newName = prompt('Please provide a new username - you can use lowercase and uppercase characters, numbers and one of these special characters ( . _ - ). The new name cannot be longer than 12 characters.',firebase.auth().currentUser.displayName);
cn = firebase.functions().httpsCallable('changeName');
cn({uid:firebase.auth().currentUser.uid,name:newName}).then(d => {
if(d.data === 1){
//all good
alert('Thanks! All good.');
location.reload();
$('.nameChangeMessage').slideUp();
}else if(d.data === 0){
//invalid or unavailable
alert('Name invalid or taken. Try again.');
}else if(d.data === -1){
//error
alert('Unknown error. Contact Miodec on Discord.');
}
});
})
}
function getLastChar(word) {
return word.charAt(word.length - 1);
}