email on new login

main
alex 2024-02-11 00:07:40 +01:00
parent 2daf1042ce
commit 8c269fd193
2 changed files with 24 additions and 14 deletions

View File

@ -21,6 +21,7 @@ import {
import { import {
decodeBase64, decodeBase64,
getEmailVerificationUrl, getEmailVerificationUrl,
getUserAgentOS,
getUserSession, getUserSession,
hashPassword, hashPassword,
matchPassword, matchPassword,
@ -140,7 +141,7 @@ export async function SignUp(req: Request, res: Response) {
// create user // create user
const user = await User.create({ await User.create({
user_id: userId, user_id: userId,
store_id: store.store_id, store_id: store.store_id,
role: Roles.Master, role: Roles.Master,
@ -152,7 +153,7 @@ export async function SignUp(req: Request, res: Response) {
state: ACCOUNT_STATE.PENDING_EMAIL_VERIFICATION, state: ACCOUNT_STATE.PENDING_EMAIL_VERIFICATION,
}); });
saveSession(req, res, false, user.user_id, user.username, rememberMe); res.status(200).send({ msg: "success" });
} catch (error) { } catch (error) {
logger.error(error); logger.error(error);
res.status(500).send({ err: "invalid request" }); res.status(500).send({ err: "invalid request" });
@ -180,7 +181,7 @@ export async function Login(req: Request, res: Response) {
where: { where: {
email: email, email: email,
}, },
attributes: ["user_id", "password", "state"], attributes: ["user_id", "password", "state", "language"],
}); });
if (!user) { if (!user) {
@ -253,8 +254,18 @@ export async function Login(req: Request, res: Response) {
}); });
} }
rabbitmq.sendEmail(
email,
"dashboardSecurityInfoNewAccountLogin",
user.language,
{
os: getUserAgentOS(req),
email: email,
}
);
// create session // create session
saveSession(req, res, true, user.user_id, user.username, rememberMe); saveSession(req, res, user.user_id, user.username, rememberMe);
} catch (error) { } catch (error) {
logger.error(error); logger.error(error);
res.status(500).send({ err: "invalid request" }); res.status(500).send({ err: "invalid request" });

View File

@ -59,10 +59,13 @@ export function newAccountExportId() {
return uuidv4(); return uuidv4();
} }
export function getUserAgentOS(req: Request) {
return req.useragent?.os as string | "";
}
export async function saveSession( export async function saveSession(
req: Request, req: Request,
res: Response, res: Response,
sendResponseData: boolean,
userId: string, userId: string,
username: string, username: string,
rememberMe: boolean rememberMe: boolean
@ -75,7 +78,7 @@ export async function saveSession(
session_id: userSession, session_id: userSession,
id: newSessionId(), id: newSessionId(),
browser: req.useragent?.browser as string, browser: req.useragent?.browser as string,
os: req.useragent?.os as string, os: getUserAgentOS(req),
last_used: new Date(), last_used: new Date(),
expires: new Date( expires: new Date(
Date.now() + Date.now() +
@ -83,14 +86,10 @@ export async function saveSession(
), ),
}); });
if (sendResponseData) {
res.status(200).json({ res.status(200).json({
XAuthorization: userSession, XAuthorization: userSession,
Username: username, Username: username,
}); });
} else {
res.status(200).send({ msg: "success" });
}
} catch (err) { } catch (err) {
res.status(500).send({ err: "invalid request" }); res.status(500).send({ err: "invalid request" });
} }