all requirement added

This commit is contained in:
Saimon8420 2025-03-01 14:15:32 +06:00
parent d304e6e69d
commit 18f1ccc8f4
2 changed files with 73 additions and 72 deletions

1
.gitignore vendored
View file

@ -25,6 +25,7 @@ yarn-debug.log*
yarn-error.log*
# local env files
.env
.env.local
.env.development.local
.env.test.local

View file

@ -13,84 +13,84 @@ export const checkUserInDb = async (email: string, password: string): Promise<{
email?: string;
}> => {
try {
// function isAdspillarEmail(email: string) {
// const regex = /^[a-zA-Z0-9._%+-]+@adspillar\.com$/;
// return regex.test(email);
// }
// if (!isAdspillarEmail(email)) {
// return { success: false, message: "Invalid email domain", can_register: false, can_login: false };
// }
// else {
// const findUser = await db.select({
// email: users.email,
// password: users.password,
// is_active: users.is_active,
// is_verified: users.is_verified,
// refresh_token: users.refresh_token,
// }).from(users).where(eq(users.email, email));
// if (!findUser[0]) {
// return { success: true, message: "User not found", can_register: true };
// }
// const hash = findUser[0].password;
// const isMatch = await Bun.password.verify(password, hash);
// if (isMatch && findUser[0].is_verified && findUser[0].is_active) {
// return {
// success: true,
// message: "User verified successfully",
// can_login: true,
// email: findUser[0].email // Ensure email is included
// };
// }
// else if (isMatch && findUser[0].is_verified === false && findUser[0].is_active) {
// return { success: false, message: "User not verified", can_login: false };
// }
// else if (isMatch && findUser[0].is_active === false && findUser[0].is_verified) {
// return { success: false, message: "User not active", can_login: false };
// }
// else {
// return { success: false, message: "Invalid password", can_login: false };
// }
// }
const findUser = await db.select({
email: users.email,
password: users.password,
is_active: users.is_active,
is_verified: users.is_verified,
refresh_token: users.refresh_token,
}).from(users).where(eq(users.email, email));
if (!findUser[0]) {
return { success: true, message: "Wrong credentials", can_register: true };
function isAdspillarEmail(email: string) {
const regex = /^[a-zA-Z0-9._%+-]+@adspillar\.com$/;
return regex.test(email);
}
const hash = findUser[0].password;
const isMatch = await Bun.password.verify(password, hash);
if (!isAdspillarEmail(email)) {
return { success: false, message: "Invalid email domain", can_register: false, can_login: false };
}
if (isMatch && findUser[0].is_verified && findUser[0].is_active) {
return {
success: true,
message: "User verified successfully",
can_login: true,
email: findUser[0].email, // Ensure email is included
can_register: false
};
}
else if (isMatch && findUser[0].is_verified === false && findUser[0].is_active) {
return { success: false, message: "User not verified", can_login: false, can_register: false };
}
else if (isMatch && findUser[0].is_active === false && findUser[0].is_verified) {
return { success: false, message: "User not active", can_login: false, can_register: false };
}
else {
return { success: false, message: "Invalid credentials", can_login: false, can_register: false };
const findUser = await db.select({
email: users.email,
password: users.password,
is_active: users.is_active,
is_verified: users.is_verified,
refresh_token: users.refresh_token,
}).from(users).where(eq(users.email, email));
if (!findUser[0]) {
return { success: true, message: "User not found", can_register: true };
}
const hash = findUser[0].password;
const isMatch = await Bun.password.verify(password, hash);
if (isMatch && findUser[0].is_verified && findUser[0].is_active) {
return {
success: true,
message: "User verified successfully",
can_login: true,
email: findUser[0].email // Ensure email is included
};
}
else if (isMatch && findUser[0].is_verified === false && findUser[0].is_active) {
return { success: false, message: "User not verified", can_login: false };
}
else if (isMatch && findUser[0].is_active === false && findUser[0].is_verified) {
return { success: false, message: "User not active", can_login: false };
}
else {
return { success: false, message: "Invalid password", can_login: false };
}
}
// const findUser = await db.select({
// email: users.email,
// password: users.password,
// is_active: users.is_active,
// is_verified: users.is_verified,
// refresh_token: users.refresh_token,
// }).from(users).where(eq(users.email, email));
// if (!findUser[0]) {
// return { success: true, message: "Wrong credentials", can_register: true };
// }
// const hash = findUser[0].password;
// const isMatch = await Bun.password.verify(password, hash);
// if (isMatch && findUser[0].is_verified && findUser[0].is_active) {
// return {
// success: true,
// message: "User verified successfully",
// can_login: true,
// email: findUser[0].email, // Ensure email is included
// can_register: false
// };
// }
// else if (isMatch && findUser[0].is_verified === false && findUser[0].is_active) {
// return { success: false, message: "User not verified", can_login: false, can_register: false };
// }
// else if (isMatch && findUser[0].is_active === false && findUser[0].is_verified) {
// return { success: false, message: "User not active", can_login: false, can_register: false };
// }
// else {
// return { success: false, message: "Invalid credentials", can_login: false, can_register: false };
// }
} catch (error: any) {
console.log("Error verifying user:", error);
return { success: false, message: "Error verifying user" };