mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2025-10-17 11:06:17 +08:00
not checking if the name is valid anymore
This commit is contained in:
parent
73897abbaa
commit
78c14b0b59
4 changed files with 161 additions and 227 deletions
|
@ -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;
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue