From e8d9e69bbf30b957fb8123418513765227880a42 Mon Sep 17 00:00:00 2001 From: Narul Hidayah Date: Sat, 3 Jan 2026 17:38:39 +0700 Subject: [PATCH] fixing login employee --- src/controllers/auth.ts | 17 +++++++++++++++-- src/controllers/user.ts | 15 ++++++++++----- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/controllers/auth.ts b/src/controllers/auth.ts index 6c73e7d..35e9fb1 100644 --- a/src/controllers/auth.ts +++ b/src/controllers/auth.ts @@ -11,7 +11,7 @@ import dayjs from "dayjs" import jwt from "jsonwebtoken" import fs from "fs" import { v4 as uuidv4 } from "uuid" -import { Application, EmailBody, Menu, User, UserRefreshToken, UserRole } from "entity" +import { Application, EmailBody, HrmsEmployee, Menu, User, UserRefreshToken, UserRole } from "entity" import axios from "axios" import CommonHelper from "../helpers/common" import { MoreThan } from "typeorm" @@ -47,7 +47,7 @@ export class AuthController { const userRefreshTokenRepository = OrmHelper.DB.getRepository(UserRefreshToken) const user = await userRepository.findOne({ - relations: ["roles", "roles.application"], + relations: ["roles", "roles.application", "employee", "employee.department", "employee.position"], select: ["id", "email", "name", "password", "username", "roles"], where: { username: param.username }, }) @@ -98,6 +98,19 @@ export class AuthController { level_name: null, } + // If user has employee, populate hrms data + if (user.employee && user.employee.id) { + hrms.uuid = user.employee.id + hrms.employee_id = user.employee.employee_id || null + hrms.employeename = user.employee.name || null + hrms.title = user.employee.position?.name || null + hrms.department_id = user.employee.department?.id || null + hrms.departement_uuid = user.employee.department?.id || null + hrms.department_name = user.employee.department?.name || null + hrms.level_id = user.employee.position?.id || null + hrms.level_name = user.employee.position?.name || null + } + var privateKey = fs.readFileSync("src/helpers/key/private.key") var token = jwt.sign( diff --git a/src/controllers/user.ts b/src/controllers/user.ts index 5d5a4aa..6b5902c 100644 --- a/src/controllers/user.ts +++ b/src/controllers/user.ts @@ -260,8 +260,11 @@ export class UserController { data.email = param.email data.status = param.status - if (param.employee && param.employee.id! + "") { - data.employee = param.employee + if (param.employee_id && param.employee_id != "") { + const employee = await OrmHelper.DB.manager.getRepository(HrmsEmployee).findOneByOrFail({ id: param.employee_id }) + data.employee = employee + } else { + data.employee = null } data.hashPassword() @@ -585,13 +588,15 @@ export class UserController { if (data != null) { data.name = param.name - data.employee = param.employee data.username = param.username data.email = param.email data.status = param.status - if (param.employee && param.employee.id != "") { - data.employee = param.employee + if (param.employee_id && param.employee_id != "") { + const employee = await OrmHelper.DB.manager.getRepository(HrmsEmployee).findOneByOrFail({ id: param.employee_id }) + data.employee = employee + } else { + data.employee = null } if (param.password) {