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); } }