2023-09-21 00:41:57 +00:00
|
|
|
const settings = require("../settings");
|
2023-09-13 19:56:58 +00:00
|
|
|
|
|
|
|
async function userRegistration(username, password) {
|
|
|
|
if (!username) return { success: false, message: "No username provided" };
|
|
|
|
if (!password) return { success: false, message: "No password provided" };
|
|
|
|
// TODO: Admin customizable minimum password length
|
|
|
|
if (password.length < 4) return { success: false, message: "Password not long enough" };
|
|
|
|
|
2023-10-27 22:26:28 +00:00
|
|
|
// Check if username only uses URL safe characters
|
|
|
|
if (!is_url_safe(username)) return { success: false, message: "Username is not URL safe" };
|
2023-09-13 19:56:58 +00:00
|
|
|
|
2023-10-27 22:26:28 +00:00
|
|
|
// All good! Validation complete
|
2023-09-13 19:56:58 +00:00
|
|
|
return { success: true };
|
|
|
|
}
|
|
|
|
|
2023-10-27 22:26:28 +00:00
|
|
|
function is_url_safe(str) {
|
|
|
|
const pattern = /^[A-Za-z0-9\-_.~]+$/;
|
|
|
|
return pattern.test(str);
|
2023-09-13 19:56:58 +00:00
|
|
|
}
|
|
|
|
|
2023-10-27 22:26:28 +00:00
|
|
|
module.exports = { userRegistration };
|