not checking if the name is valid anymore

This commit is contained in:
Jack 2020-09-14 22:00:58 +01:00
parent 73897abbaa
commit 78c14b0b59
4 changed files with 161 additions and 227 deletions

View file

@ -14,27 +14,6 @@ admin.initializeApp({
const db = admin.firestore();
exports.moveResults = functions
.runWith({ timeoutSeconds: 540, memory: "2GB" })
.https.onCall((request, response) => {
return db
.collection("results")
.orderBy("timestamp", "desc")
.limit(2000)
.get()
.then((data) => {
data.docs.forEach((doc) => {
let result = doc.data();
if (result.moved === undefined || result.moved === false) {
db.collection(`results`).doc(doc.id).update({ moved: true });
db.collection(`users/${result.uid}/results`).add(result);
console.log(`moving doc ${doc.id}`);
}
});
return;
});
});
function getAllNames() {
return admin
.auth()
@ -88,156 +67,156 @@ exports.checkNameAvailability = functions.https.onCall((request, response) => {
}
});
exports.changeName = functions.https.onCall((request, response) => {
try {
if (!isUsernameValid(request.name)) {
console.warn(
`${request.uid} tried to change their name to ${request.name} - not valid`
);
return 0;
}
return getAllNames().then((data) => {
let available = 1;
data.forEach((name) => {
try {
if (name.toLowerCase() === request.name.toLowerCase()) available = 0;
} catch (e) {
//
}
});
if (available === 1) {
return admin
.auth()
.updateUser(request.uid, {
displayName: request.name,
})
.then((d) => {
console.log(
`${request.uid} changed their name to ${request.name} - done`
);
return 1;
})
.catch((e) => {
console.error(
`${request.uid} tried to change their name to ${request.name} - ${e.message}`
);
return -1;
});
} else {
console.warn(
`${request.uid} tried to change their name to ${request.name} - already taken`
);
return 0;
}
});
} catch (e) {
console.error(
`${request.uid} tried to change their name to ${request.name} - ${e}`
);
return -1;
}
});
// exports.changeName = functions.https.onCall((request, response) => {
// try {
// if (!isUsernameValid(request.name)) {
// console.warn(
// `${request.uid} tried to change their name to ${request.name} - not valid`
// );
// return 0;
// }
// return getAllNames().then((data) => {
// let available = 1;
// data.forEach((name) => {
// try {
// if (name.toLowerCase() === request.name.toLowerCase()) available = 0;
// } catch (e) {
// //
// }
// });
// if (available === 1) {
// return admin
// .auth()
// .updateUser(request.uid, {
// displayName: request.name,
// })
// .then((d) => {
// console.log(
// `${request.uid} changed their name to ${request.name} - done`
// );
// return 1;
// })
// .catch((e) => {
// console.error(
// `${request.uid} tried to change their name to ${request.name} - ${e.message}`
// );
// return -1;
// });
// } else {
// console.warn(
// `${request.uid} tried to change their name to ${request.name} - already taken`
// );
// return 0;
// }
// });
// } catch (e) {
// console.error(
// `${request.uid} tried to change their name to ${request.name} - ${e}`
// );
// return -1;
// }
// });
exports.checkIfNeedsToChangeName = functions.https.onCall(
(request, response) => {
try {
return db
.collection("users")
.doc(request.uid)
.get()
.then((doc) => {
if (
doc.data().name === undefined ||
doc.data().name === null ||
doc.data().name === ""
) {
return admin
.auth()
.getUser(request.uid)
.then((requestUser) => {
if (!isUsernameValid(requestUser.displayName)) {
//invalid name, needs to change
console.log(
`user ${requestUser.uid} ${requestUser.displayName} needs to change name`
);
return 1;
} else {
//valid name, but need to change if not duplicate
// exports.checkIfNeedsToChangeName = functions.https.onCall(
// (request, response) => {
// try {
// return db
// .collection("users")
// .doc(request.uid)
// .get()
// .then((doc) => {
// if (
// doc.data().name === undefined ||
// doc.data().name === null ||
// doc.data().name === ""
// ) {
// return admin
// .auth()
// .getUser(request.uid)
// .then((requestUser) => {
// if (!isUsernameValid(requestUser.displayName)) {
// //invalid name, needs to change
// console.log(
// `user ${requestUser.uid} ${requestUser.displayName} needs to change name`
// );
// return 1;
// } else {
// //valid name, but need to change if not duplicate
return getAllUsers()
.then((users) => {
let sameName = [];
// return getAllUsers()
// .then((users) => {
// let sameName = [];
//look for name names
users.forEach((user) => {
if (user.uid !== requestUser.uid) {
try {
if (
user.displayName.toLowerCase() ===
requestUser.displayName.toLowerCase()
) {
sameName.push(user);
}
} catch (e) {
//
}
}
});
// //look for name names
// users.forEach((user) => {
// if (user.uid !== requestUser.uid) {
// try {
// if (
// user.displayName.toLowerCase() ===
// requestUser.displayName.toLowerCase()
// ) {
// sameName.push(user);
// }
// } catch (e) {
// //
// }
// }
// });
if (sameName.length === 0) {
db.collection("users")
.doc(request.uid)
.update({ name: requestUser.displayName })
.then(() => {
return 0;
});
} else {
//check when the request user made the account compared to others
let earliestTimestamp = 999999999999999;
sameName.forEach((sn) => {
let ts =
new Date(sn.metadata.creationTime).getTime() / 1000;
if (ts <= earliestTimestamp) {
earliestTimestamp = ts;
}
});
// if (sameName.length === 0) {
// db.collection("users")
// .doc(request.uid)
// .update({ name: requestUser.displayName })
// .then(() => {
// return 0;
// });
// } else {
// //check when the request user made the account compared to others
// let earliestTimestamp = 999999999999999;
// sameName.forEach((sn) => {
// let ts =
// new Date(sn.metadata.creationTime).getTime() / 1000;
// if (ts <= earliestTimestamp) {
// earliestTimestamp = ts;
// }
// });
if (
new Date(
requestUser.metadata.creationTime
).getTime() /
1000 >
earliestTimestamp
) {
console.log(
`user ${requestUser.uid} ${requestUser.displayName} needs to change name`
);
return 2;
} else {
db.collection("users")
.doc(request.uid)
.update({ name: requestUser.displayName })
.then(() => {
return 0;
});
}
}
})
.catch((e) => {
console.error(`error getting all users - ${e}`);
});
}
});
} else {
// console.log("name is good");
return 0;
}
});
} catch (e) {
return -1;
}
}
);
// if (
// new Date(
// requestUser.metadata.creationTime
// ).getTime() /
// 1000 >
// earliestTimestamp
// ) {
// console.log(
// `user ${requestUser.uid} ${requestUser.displayName} needs to change name`
// );
// return 2;
// } else {
// db.collection("users")
// .doc(request.uid)
// .update({ name: requestUser.displayName })
// .then(() => {
// return 0;
// });
// }
// }
// })
// .catch((e) => {
// console.error(`error getting all users - ${e}`);
// });
// }
// });
// } else {
// // console.log("name is good");
// return 0;
// }
// });
// } catch (e) {
// return -1;
// }
// }
// );
function checkIfPB(uid, obj, userdata) {
let pbs = null;

View file

@ -6,7 +6,7 @@
<title>Monkey Type</title>
<link rel="stylesheet" href="css/fa.css" />
<link rel="stylesheet" href="css/balloon.css" />
<link rel="stylesheet" href="css/style.css?v=57" />
<link rel="stylesheet" href="css/style.css?v=58" />
<link rel="stylesheet" href="themes/serika_dark.css" id="currentTheme" />
<link rel="stylesheet" href="" id="funBoxTheme" />
<link id="favicon" rel="shortcut icon" href="fav.png" />
@ -2855,21 +2855,21 @@
<script src="js/jquery-3.5.1.min.js"></script>
<script src="js/jquery.color.min.js"></script>
<script src="js/easing.js"></script>
<script src="js/jquery.cookie-1.4.1.min.js?v=59"></script>
<script src="js/moment.min.js?v=59"></script>
<script src="js/jquery.cookie-1.4.1.min.js?v=60"></script>
<script src="js/moment.min.js?v=60"></script>
<!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.3/Chart.min.js"></script> -->
<script src="js/chart.min.js"></script>
<script src="js/chartjs-plugin-trendline.js?v=59"></script>
<script src="js/chartjs-plugin-annotation.js?v=59"></script>
<script src="js/html2canvas.min.js?v=59"></script>
<script src="js/misc.js?v=59"></script>
<script src="js/words.js?v=59"></script>
<script src="js/layouts.js?v=59"></script>
<script src="js/db.js?v=59"></script>
<script src="js/userconfig.js?v=59"></script>
<script src="js/commandline.js?v=59"></script>
<script src="js/leaderboards.js?v=59"></script>
<script src="js/settings.js?v=59"></script>
<script src="js/account.js?v=59"></script>
<script src="js/script.js?v=59"></script>
<script src="js/chartjs-plugin-trendline.js?v=60"></script>
<script src="js/chartjs-plugin-annotation.js?v=60"></script>
<script src="js/html2canvas.min.js?v=60"></script>
<script src="js/misc.js?v=60"></script>
<script src="js/words.js?v=60"></script>
<script src="js/layouts.js?v=60"></script>
<script src="js/db.js?v=60"></script>
<script src="js/userconfig.js?v=60"></script>
<script src="js/commandline.js?v=60"></script>
<script src="js/leaderboards.js?v=60"></script>
<script src="js/settings.js?v=60"></script>
<script src="js/account.js?v=60"></script>
<script src="js/script.js?v=60"></script>
</html>

View file

@ -325,7 +325,6 @@ firebase.auth().onAuthStateChanged(function (user) {
var providerData = user.providerData;
// showNotification('Signed in', 1000);
$(".pageLogin .preloader").addClass("hidden");
if (!dontCheckUserName) verifyUsername();
$("#menu .icon-button.account .text").text(displayName);
}
});

View file

@ -333,50 +333,6 @@ function toggleScriptFunbox(...params) {
}
}
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
);
if (newName) {
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 getuid() {
console.error("Only share this uid with Miodec and nobody else!");
console.log(firebase.auth().currentUser.uid);