fix ปลดตำแหน่ง/ลบkeycloak คำสั่ง 12, 13, 17, 18, 19, 20, 23,
This commit is contained in:
parent
038eb37842
commit
eecc6f22c9
3 changed files with 73 additions and 3 deletions
|
|
@ -39,6 +39,7 @@ import {
|
||||||
commandTypePath,
|
commandTypePath,
|
||||||
removeProfileInOrganize,
|
removeProfileInOrganize,
|
||||||
setLogDataDiff,
|
setLogDataDiff,
|
||||||
|
checkCommandType
|
||||||
} from "../interfaces/utils";
|
} from "../interfaces/utils";
|
||||||
import { Position } from "../entities/Position";
|
import { Position } from "../entities/Position";
|
||||||
import { PosMaster } from "../entities/PosMaster";
|
import { PosMaster } from "../entities/PosMaster";
|
||||||
|
|
@ -50,7 +51,7 @@ import { PosMasterAct } from "../entities/PosMasterAct";
|
||||||
import { sendToQueue } from "../services/rabbitmq";
|
import { sendToQueue } from "../services/rabbitmq";
|
||||||
import { PosLevel } from "../entities/PosLevel";
|
import { PosLevel } from "../entities/PosLevel";
|
||||||
import { PosType } from "../entities/PosType";
|
import { PosType } from "../entities/PosType";
|
||||||
import { addUserRoles, createUser, getRoles } from "../keycloak";
|
import { addUserRoles, createUser, getRoles, deleteUser } from "../keycloak";
|
||||||
import { ProfileEducation, CreateProfileEducation } from "../entities/ProfileEducation";
|
import { ProfileEducation, CreateProfileEducation } from "../entities/ProfileEducation";
|
||||||
import { ProfileEducationHistory } from "../entities/ProfileEducationHistory";
|
import { ProfileEducationHistory } from "../entities/ProfileEducationHistory";
|
||||||
import { CreateProfileCertificate, ProfileCertificate } from "../entities/ProfileCertificate";
|
import { CreateProfileCertificate, ProfileCertificate } from "../entities/ProfileCertificate";
|
||||||
|
|
@ -1826,6 +1827,16 @@ export class CommandController extends Controller {
|
||||||
if (item.isLeave == true) {
|
if (item.isLeave == true) {
|
||||||
await removeProfileInOrganize(profile.id, "OFFICER");
|
await removeProfileInOrganize(profile.id, "OFFICER");
|
||||||
}
|
}
|
||||||
|
const clearProfile = await checkCommandType(String(item.commandId));
|
||||||
|
if(clearProfile) {
|
||||||
|
if(profile.keycloak != null) {
|
||||||
|
const delUserKeycloak = await deleteUser(profile.keycloak);
|
||||||
|
if (delUserKeycloak) profile.keycloak = _null;
|
||||||
|
}
|
||||||
|
profile.position = _null;
|
||||||
|
profile.posTypeId = _null;
|
||||||
|
profile.posLevelId = _null;
|
||||||
|
}
|
||||||
await this.profileRepository.save(profile);
|
await this.profileRepository.save(profile);
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
@ -1854,6 +1865,7 @@ export class CommandController extends Controller {
|
||||||
leaveReason?: string | null;
|
leaveReason?: string | null;
|
||||||
dateLeave?: Date | null;
|
dateLeave?: Date | null;
|
||||||
isGovernment?: boolean | null;
|
isGovernment?: boolean | null;
|
||||||
|
commandId?: string | null;
|
||||||
}[];
|
}[];
|
||||||
},
|
},
|
||||||
) {
|
) {
|
||||||
|
|
@ -1905,6 +1917,16 @@ export class CommandController extends Controller {
|
||||||
if (item.isLeave == true) {
|
if (item.isLeave == true) {
|
||||||
await removeProfileInOrganize(profile.id, "EMPLOYEE");
|
await removeProfileInOrganize(profile.id, "EMPLOYEE");
|
||||||
}
|
}
|
||||||
|
const clearProfile = await checkCommandType(String(item.commandId));
|
||||||
|
if(clearProfile) {
|
||||||
|
if(profile.keycloak != null) {
|
||||||
|
const delUserKeycloak = await deleteUser(profile.keycloak);
|
||||||
|
if (delUserKeycloak) profile.keycloak = _null;
|
||||||
|
}
|
||||||
|
profile.position = _null;
|
||||||
|
profile.posTypeId = _null;
|
||||||
|
profile.posLevelId = _null;
|
||||||
|
}
|
||||||
await this.profileEmployeeRepository.save(profile);
|
await this.profileEmployeeRepository.save(profile);
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
@ -1959,7 +1981,18 @@ export class CommandController extends Controller {
|
||||||
createdAt: new Date(),
|
createdAt: new Date(),
|
||||||
lastUpdatedAt: new Date(),
|
lastUpdatedAt: new Date(),
|
||||||
};
|
};
|
||||||
|
const clearProfile = await checkCommandType(String(item.commandId));
|
||||||
|
const _null: any = null;
|
||||||
|
if(clearProfile) {
|
||||||
|
if(profile.keycloak != null) {
|
||||||
|
const delUserKeycloak = await deleteUser(profile.keycloak);
|
||||||
|
if (delUserKeycloak) profile.keycloak = _null;
|
||||||
|
}
|
||||||
|
profile.position = _null;
|
||||||
|
profile.posTypeId = _null;
|
||||||
|
profile.posLevelId = _null;
|
||||||
|
await this.profileRepository.save(profile, {data: req});
|
||||||
|
}
|
||||||
Object.assign(data, { ...item, ...meta });
|
Object.assign(data, { ...item, ...meta });
|
||||||
const history = new ProfileSalaryHistory();
|
const history = new ProfileSalaryHistory();
|
||||||
Object.assign(history, { ...data, id: undefined });
|
Object.assign(history, { ...data, id: undefined });
|
||||||
|
|
@ -2155,6 +2188,16 @@ export class CommandController extends Controller {
|
||||||
if (item.isLeave == true) {
|
if (item.isLeave == true) {
|
||||||
await removeProfileInOrganize(profile.id, "OFFICER");
|
await removeProfileInOrganize(profile.id, "OFFICER");
|
||||||
}
|
}
|
||||||
|
const clearProfile = await checkCommandType(String(item.commandId));
|
||||||
|
if(clearProfile) {
|
||||||
|
if(profile.keycloak != null) {
|
||||||
|
const delUserKeycloak = await deleteUser(profile.keycloak);
|
||||||
|
if (delUserKeycloak) profile.keycloak = _null;
|
||||||
|
}
|
||||||
|
profile.position = _null;
|
||||||
|
profile.posTypeId = _null;
|
||||||
|
profile.posLevelId = _null;
|
||||||
|
}
|
||||||
await this.profileRepository.save(profile);
|
await this.profileRepository.save(profile);
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|
@ -2327,6 +2370,17 @@ export class CommandController extends Controller {
|
||||||
dateGovernment: new Date(),
|
dateGovernment: new Date(),
|
||||||
isGovernment: item.isGovernment,
|
isGovernment: item.isGovernment,
|
||||||
});
|
});
|
||||||
|
const clearProfile = await checkCommandType(String(item.commandId));
|
||||||
|
const _null: any = null;
|
||||||
|
if(clearProfile) {
|
||||||
|
if(_profile.keycloak != null) {
|
||||||
|
const delUserKeycloak = await deleteUser(_profile.keycloak);
|
||||||
|
if (delUserKeycloak) _profile.keycloak = _null;
|
||||||
|
}
|
||||||
|
_profile.position = _null;
|
||||||
|
_profile.posTypeId = _null;
|
||||||
|
_profile.posLevelId = _null;
|
||||||
|
}
|
||||||
await Promise.all([
|
await Promise.all([
|
||||||
this.profileRepository.save(_profile),
|
this.profileRepository.save(_profile),
|
||||||
this.salaryRepo.save(profileSalary),
|
this.salaryRepo.save(profileSalary),
|
||||||
|
|
|
||||||
|
|
@ -187,7 +187,7 @@ export class KeycloakController extends Controller {
|
||||||
|
|
||||||
const profile = await this.profileRepo.findOne({
|
const profile = await this.profileRepo.findOne({
|
||||||
where: {
|
where: {
|
||||||
id: userId,
|
keycloak: userId,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import { EmployeePosMaster } from "../entities/EmployeePosMaster";
|
||||||
import { EmployeePosition } from "../entities/EmployeePosition";
|
import { EmployeePosition } from "../entities/EmployeePosition";
|
||||||
import { In } from "typeorm";
|
import { In } from "typeorm";
|
||||||
import { RequestWithUser } from "../middlewares/user";
|
import { RequestWithUser } from "../middlewares/user";
|
||||||
|
import { Command } from "../entities/Command";
|
||||||
export function calculateAge(start: Date, end = new Date()) {
|
export function calculateAge(start: Date, end = new Date()) {
|
||||||
if (start.getTime() > end.getTime()) return null;
|
if (start.getTime() > end.getTime()) return null;
|
||||||
|
|
||||||
|
|
@ -173,6 +174,21 @@ export async function removeProfileInOrganize(profileId: string, type: string) {
|
||||||
.execute();
|
.execute();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function checkCommandType(commandId: string) {
|
||||||
|
const commandRepository = AppDataSource.getRepository(Command);
|
||||||
|
const _type = await commandRepository.findOne({
|
||||||
|
where: {
|
||||||
|
id: commandId
|
||||||
|
},
|
||||||
|
relations: ["commandType"],
|
||||||
|
});
|
||||||
|
if (!["C-PM-12", "C-PM-13", "C-PM-17", "C-PM-18", "C-PM-23", "C-PM-19", "C-PM-20"].includes(String(_type?.commandType.code))) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
//logs
|
//logs
|
||||||
export type DataDiff = {
|
export type DataDiff = {
|
||||||
before: any;
|
before: any;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue