From 1b57a23e97953b2590012733367f877faf14609a Mon Sep 17 00:00:00 2001 From: kittapath Date: Mon, 9 Sep 2024 14:45:00 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=81=E0=B8=B3=E0=B8=AB=E0=B8=99=E0=B8=94?= =?UTF-8?q?=E0=B8=AA=E0=B8=B4=E0=B8=97=E0=B8=98=E0=B8=B4=E0=B9=8C=E0=B8=88?= =?UTF-8?q?=E0=B8=B1=E0=B8=94=E0=B8=81=E0=B8=B2=E0=B8=A3=E0=B9=82=E0=B8=84?= =?UTF-8?q?=E0=B8=A3=E0=B8=87=E0=B8=AA=E0=B8=A3=E0=B9=89=E0=B8=B2=E0=B8=87?= =?UTF-8?q?=20=E0=B8=9C=E0=B8=B9=E0=B8=81=E0=B8=81=E0=B8=B1=E0=B8=9A?= =?UTF-8?q?=E0=B9=81=E0=B8=9A=E0=B8=9A=E0=B8=A3=E0=B9=88=E0=B8=B2=E0=B8=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/OrganizationController.ts | 30 ++++++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/src/controllers/OrganizationController.ts b/src/controllers/OrganizationController.ts index 970ea8eb..dcf6dca0 100644 --- a/src/controllers/OrganizationController.ts +++ b/src/controllers/OrganizationController.ts @@ -600,7 +600,7 @@ export class OrganizationController extends Controller { */ @Get("{id}") async detail(@Path() id: string, @Request() request: RequestWithUser) { - let _data = { + let _data: any = { root: null, child1: null, child2: null, @@ -608,14 +608,36 @@ export class OrganizationController extends Controller { child4: null, }; - if (!request.user.role.includes("SUPER_ADMIN")) { - _data = await new permission().PermissionOrgList(request, "SYS_ORG"); - } const orgRevision = await this.orgRevisionRepository.findOne({ where: { id } }); if (!orgRevision) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } + if ( + !request.user.role.includes("SUPER_ADMIN") && + orgRevision.orgRevisionIsCurrent == true && + orgRevision.orgRevisionIsDraft == false + ) { + _data = await new permission().PermissionOrgList(request, "SYS_ORG"); + } + + if (orgRevision.orgRevisionIsDraft == true && orgRevision.orgRevisionIsCurrent == false) { + const profile = await this.profileRepo.findOne({ + where: { keycloak: request.user.sub }, + relations: ["permissionProfiles"], + }); + if (!profile) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ใช้งานในทะเบียนประวัติ"); + } + _data = { + root: profile.permissionProfiles.map((x) => x.orgRootId), + child1: null, + child2: null, + child3: null, + child4: null, + }; + } + const orgRootData = await AppDataSource.getRepository(OrgRoot) .createQueryBuilder("orgRoot") .where("orgRoot.orgRevisionId = :id", { id })