From 1b5d7b7095a0ad8cddd79091fe091db7470ca6a6 Mon Sep 17 00:00:00 2001 From: Abdul Rahman Reza Date: Sun, 12 Jan 2025 22:34:58 +0700 Subject: [PATCH] add logic check roles per application is exists --- src/controllers/user.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/controllers/user.ts b/src/controllers/user.ts index 7a1ef0a..4e5b78b 100644 --- a/src/controllers/user.ts +++ b/src/controllers/user.ts @@ -311,7 +311,13 @@ export class UserController { }); if (data != null) { - const new_role = await repo_role.findOneBy({ id: param.id_role }); + // const new_role = await repo_role.findOneBy({ id: param.id_role }); + const new_role = await repo_role.findOne({ + relations: { + application: true, + }, + where: { id: param.id_role } + }); if (data.roles) { for (let r of data.roles) { @@ -319,6 +325,10 @@ export class UserController { //already added return ReturnHelper.errorResponse(res, 409, 401, Language.lang.failed_insert + ", roles already exists ", ""); } + + if (r.application.id == new_role.application.id) { + return ReturnHelper.errorResponse(res, 409, 402, Language.lang.failed_insert + ", roles in this application already exists ", ""); + } } } @@ -332,13 +342,13 @@ export class UserController { return ReturnHelper.successResponseAny(res, 200, Language.lang.success_update, data); } else { - return ReturnHelper.errorResponse(res, 404, 402, Language.lang.failed_not_found, ""); + return ReturnHelper.errorResponse(res, 404, 403, Language.lang.failed_not_found, ""); } } catch (e: unknown) { log.error(e); const err = e as Error; - return ReturnHelper.errorResponse(res, 500, 403, Language.lang.failed_update, err.message); + return ReturnHelper.errorResponse(res, 500, 404, Language.lang.failed_update, err.message); } }