From 4a59e20733b2780fdf574130874ea9d239776416 Mon Sep 17 00:00:00 2001 From: Bright Date: Thu, 29 Aug 2024 14:44:34 +0700 Subject: [PATCH] fix permission kpi --- src/controllers/KpiPeriodController.ts | 42 ++++++++++++++++--- .../KpiUserDevelopmentController.ts | 3 +- .../KpiUserEvaluationController.ts | 7 +++- 3 files changed, 44 insertions(+), 8 deletions(-) diff --git a/src/controllers/KpiPeriodController.ts b/src/controllers/KpiPeriodController.ts index 0e28fa2..5f5622a 100644 --- a/src/controllers/KpiPeriodController.ts +++ b/src/controllers/KpiPeriodController.ts @@ -131,7 +131,7 @@ export class kpiPeriodController extends Controller { } /** - * API ปิดรอบการประเมินผลการปฏิบัติหน้าที่ราชการ + * API ปิดรอบการประเมินผลการปฏิบัติหน้าที่ราชการ (ADMIN) * @param id Guid, *Id ปิดรอบการประเมินผลการปฏิบัติหน้าที่ราชการ */ @Get("close/{id}") @@ -141,6 +141,7 @@ export class kpiPeriodController extends Controller { endDate: "datetime", //วันสิ้นสุด }) async CloseKpiPeriodById(@Path() id: string, @Request() request: RequestWithUser) { + await new permission().PermissionUpdate(request, "SYS_KPI_ROUND"); const kpiPeriod = await this.kpiPeriodRepository.findOne({ where: { id: id }, }); @@ -160,7 +161,7 @@ export class kpiPeriodController extends Controller { } /** - * API เปิดรอบการประเมินผลการปฏิบัติหน้าที่ราชการ + * API เปิดรอบการประเมินผลการปฏิบัติหน้าที่ราชการ (ADMIN) * @param id Guid, *Id เปิดรอบการประเมินผลการปฏิบัติหน้าที่ราชการ */ @Get("open/{id}") @@ -170,6 +171,7 @@ export class kpiPeriodController extends Controller { endDate: "datetime", //วันสิ้นสุด }) async OpenKpiPeriodById(@Path() id: string, @Request() request: RequestWithUser) { + await new permission().PermissionGet(request, "SYS_KPI_ROUND"); const kpiPeriod = await this.kpiPeriodRepository.findOne({ where: { id: id }, }); @@ -189,7 +191,7 @@ export class kpiPeriodController extends Controller { } /** - * API list รอบการประเมินผลการปฏิบัติหน้าที่ราชการ + * API list รอบการประเมินผลการปฏิบัติหน้าที่ราชการ (USER) * @param page * @param pageSize * @param keyword @@ -202,7 +204,7 @@ export class kpiPeriodController extends Controller { @Query("year") year?: number, @Query("keyword") keyword?: string, ) { - await new permission().PermissionDelete(request, "SYS_KPI_ROUND"); + // await new permission().PermissionDelete(request, "SYS_KPI_ROUND"); const [kpiPeriod, total] = await AppDataSource.getRepository(KpiPeriod) .createQueryBuilder("kpiPeriod") .andWhere( @@ -243,7 +245,37 @@ export class kpiPeriodController extends Controller { } /** - * API list รอบการประเมินผลการปฏิบัติหน้าที่ราชการ + * API list รอบการประเมินผลการปฏิบัติหน้าที่ราชการ (ADMIN) + * @param page + * @param pageSize + * @param keyword + */ + @Get("admin") + async listKpiPeriodAdmin( + @Request() request: RequestWithUser, + @Query("page") page: number = 1, + @Query("pageSize") pageSize: number = 10, + @Query("year") year?: number, + @Query("keyword") keyword?: string, + ) { + await new permission().PermissionList(request, "SYS_KPI_ROUND"); + const [kpiPeriod, total] = await AppDataSource.getRepository(KpiPeriod) + .createQueryBuilder("kpiPeriod") + .andWhere( + year !== 0 && year != null && year != undefined ? "kpiPeriod.year = :year" : "1=1", + { year: year }, + ) + .orderBy("kpiPeriod.startDate", "ASC") + .addOrderBy("kpiPeriod.year", "ASC") + .skip((page - 1) * pageSize) + .take(pageSize) + .getManyAndCount(); + + return new HttpSuccess({ data: kpiPeriod, total }); + } + + /** + * API list รอบการประเมินผลการปฏิบัติหน้าที่ราชการ (USER) * @param page * @param pageSize * @param keyword diff --git a/src/controllers/KpiUserDevelopmentController.ts b/src/controllers/KpiUserDevelopmentController.ts index fa9af26..5ce3491 100644 --- a/src/controllers/KpiUserDevelopmentController.ts +++ b/src/controllers/KpiUserDevelopmentController.ts @@ -339,7 +339,7 @@ export class KpiUserDevelopmentController extends Controller { */ @Post("admin") async listKpiDevelopmentByStatusKP7( - @Request() request: { user: Record }, + @Request() request: RequestWithUser, @Body() requestBody: { page: number; @@ -352,6 +352,7 @@ export class KpiUserDevelopmentController extends Controller { // evaluating?: boolean | null; }, ) { + await new permission().PermissionList(request, "SYS_RESULT"); let conditionFullName = "CONCAT(kpiUserEvaluation.prefix, kpiUserEvaluation.firstName, ' ', kpiUserEvaluation.lastName) LIKE :keyword"; const [kpiUserDevelopment, total] = await AppDataSource.getRepository(KpiUserDevelopment) diff --git a/src/controllers/KpiUserEvaluationController.ts b/src/controllers/KpiUserEvaluationController.ts index 5ddf7ee..2aee597 100644 --- a/src/controllers/KpiUserEvaluationController.ts +++ b/src/controllers/KpiUserEvaluationController.ts @@ -76,6 +76,7 @@ export class KpiUserEvaluationController extends Controller { evaluating?: boolean | null; }, ) { + await new permission().PermissionList(request, "SYS_KPI_ROUND"); let profileId: any = null; await new CallAPI() .GetData(request, "/org/profile/keycloak/position") @@ -214,7 +215,8 @@ export class KpiUserEvaluationController extends Controller { evaluating?: boolean | null; }, ) { - await new permission().PermissionDelete(request, "SYS_RESULT"); + // await new permission().PermissionDelete(request, "SYS_RESULT"); + await new permission().PermissionList(request, "SYS_KPI_ROUND"); let conditionFullName = "CONCAT(kpiUserEvaluation.prefix, kpiUserEvaluation.firstName, ' ', kpiUserEvaluation.lastName) LIKE :keyword"; const [kpiUserEvaluation, total] = await AppDataSource.getRepository(KpiUserEvaluation) @@ -331,6 +333,7 @@ export class KpiUserEvaluationController extends Controller { evaluating?: boolean | null; }, ) { + await new permission().PermissionList(request, "SYS_KPI_LIST"); let conditionFullName = "CONCAT(kpiUserEvaluation.prefix, kpiUserEvaluation.firstName, ' ', kpiUserEvaluation.lastName) LIKE :keyword"; const [kpiUserEvaluation, total] = await AppDataSource.getRepository(KpiUserEvaluation) @@ -438,7 +441,7 @@ export class KpiUserEvaluationController extends Controller { @Body() requestBody: createKpiUserEvaluation, @Request() request: RequestWithUser, ) { - await new permission().PermissionCreate(request, "SYS_KPI_LIST"); + // await new permission().PermissionCreate(request, "SYS_KPI_LIST"); const kpiPeriod = await this.kpiPeriodRepository.findOne({ where: { id: requestBody.kpiPeriodId }, });