yet-another-blog/backend/core/form_validation.js

29 lines
1.1 KiB
JavaScript

const { PrismaClient } = require("@prisma/client");
const prisma = new PrismaClient();
const core = require("./core");
const settings = require("../settings");
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" };
const existing_user = await core.getUser({ username: username });
if (existing_user.success) return { success: false, message: "Username already exists" };
return { success: true };
}
async function userLogin(username, password) {
const existing_user = await core.getUser({ username: username });
if (!existing_user.success) return { success: false, message: "User does not exist" };
if (existing_user.role === "LOCKED") return { success: false, message: "Account is locked: Contact your administrator" };
return { success: true, data: existing_user.data };
}
module.exports = { userRegistration, userLogin };