From 4aa21cab5cf58d2899292ba49f718b5708a64e6a Mon Sep 17 00:00:00 2001 From: WlodekM Date: Tue, 26 Nov 2024 10:41:27 +0200 Subject: eugh i spent 2 hours on this --- accounts.js | 83 ------------------------------------------------------------- 1 file changed, 83 deletions(-) delete mode 100644 accounts.js (limited to 'accounts.js') diff --git a/accounts.js b/accounts.js deleted file mode 100644 index fe9d164..0000000 --- a/accounts.js +++ /dev/null @@ -1,83 +0,0 @@ -import { createHash } from "crypto"; -import cuid from "cuid"; -import fs from "fs"; - -if (!fs.existsSync("db")) fs.mkdirSync("db"); -if (!fs.existsSync("db/users.json")) fs.writeFileSync("db/users.json", "{}"); - -const db = JSON.parse(fs.readFileSync("db/users.json").toString()); - -/** - * Syncs DB to file - */ -function syncDB() { - fs.writeFileSync("db/users.json", JSON.stringify(db)); -} - -/** - * Checks if account exists - * @param {String} username Username to check - * @returns {Boolean} - */ -export function checkAccount(username) { - return db[username] != undefined; -} - -/** - * Does a loose check on if the account exists - * @param {String} username Username to check - * @returns {Boolean} - */ -export function checkAccountLoose(username) { - return Object.keys(db).find(n => n.toLowerCase() == username.toLowerCase()); -} - -/** - * Create an account - * @param {String} username The username - * @param {String} password The password - */ -export function createAccount(username, password, admin = false) { - let hashedPassword = createHash("sha256").update(password).digest("hex"); - db[username] = { - admin, - id: cuid(), - password: hashedPassword, - ips: [], - t: Number(new Date()) / 1000, - }; - syncDB(); -} - -/** - * Log IP address (for IP bans) - * @param {String} username Username - * @param {String} ip IP address - */ -export function logIP(username, ip) { - if (!db[username].ips) db[username].ips = []; - if (!db[username].ips.includes(ip)) db[username].ips.push(ip); - syncDB(); -} - -/** - * Check if password is correct - * @param {String} username The username - * @param {String} password The password - * @returns {Boolean} - */ -export function checkPassword(username, password) { - let hashedPassword = createHash("sha256").update(password).digest("hex"); - return db[username]?.password === hashedPassword; -} - -/** - * Get account data - * @param {String} username The username - * @returns {Object} - */ -export function getAccountData(username) { - let returnData = JSON.parse(JSON.stringify(db[username])); - returnData.password = null; - return returnData; -} -- cgit 1.4.1-2-gfad0