From 527a4fd837afba729a62fa54d780bc9821fe0481 Mon Sep 17 00:00:00 2001 From: OxSaitama Date: Thu, 17 Aug 2023 11:28:30 +0200 Subject: [PATCH] refacto rules assignment in jwt --- src/common/databases/seeders/seeder.ts | 7 ------ src/common/repositories/RolesRepository.ts | 2 ++ src/common/repositories/RulesRepository.ts | 2 ++ .../common/AuthService/AuthService.ts | 25 ++++++++----------- src/test/config/Init.ts | 3 +++ 5 files changed, 18 insertions(+), 21 deletions(-) diff --git a/src/common/databases/seeders/seeder.ts b/src/common/databases/seeders/seeder.ts index cfc8ccda..0e812e5c 100644 --- a/src/common/databases/seeders/seeder.ts +++ b/src/common/databases/seeders/seeder.ts @@ -835,13 +835,6 @@ export default async function main() { ]; const officeRoles: OfficeRole[] = [ - { - name: "admin", - created_at: new Date(), - updated_at: new Date(), - office: offices[0]!, - rules: rules.slice(0, 40), - }, { name: "Notaire", created_at: new Date(), diff --git a/src/common/repositories/RolesRepository.ts b/src/common/repositories/RolesRepository.ts index 20d203c7..5467f0a0 100644 --- a/src/common/repositories/RolesRepository.ts +++ b/src/common/repositories/RolesRepository.ts @@ -31,6 +31,7 @@ export default class RolesRepository extends BaseRepository { const createArgs: Prisma.RolesCreateArgs = { data: { name: role.name, + label: role.label, rules: { connect: role.rules?.map((rule) => ({ uid: rule.uid!, @@ -52,6 +53,7 @@ export default class RolesRepository extends BaseRepository { }, data: { name: role.name, + label: role.label, rules: { set: role.rules?.map((rule) => ({ uid: rule.uid!, diff --git a/src/common/repositories/RulesRepository.ts b/src/common/repositories/RulesRepository.ts index 7781290b..281e505b 100644 --- a/src/common/repositories/RulesRepository.ts +++ b/src/common/repositories/RulesRepository.ts @@ -31,6 +31,7 @@ export default class RulesRepository extends BaseRepository { const createArgs: Prisma.RulesCreateArgs = { data: { name: rule.name, + label: rule.label }, }; @@ -47,6 +48,7 @@ export default class RulesRepository extends BaseRepository { }, data: { name: rule.name, + label: rule.label }, }; diff --git a/src/services/common/AuthService/AuthService.ts b/src/services/common/AuthService/AuthService.ts index 0a751e21..4410cd35 100644 --- a/src/services/common/AuthService/AuthService.ts +++ b/src/services/common/AuthService/AuthService.ts @@ -12,7 +12,7 @@ enum PROVIDER_OPENID { } interface ICustomerJwtPayload { - userId: string; + customerId: string; email: string; } @@ -46,7 +46,7 @@ export default class AuthService extends BaseService { } return { - userId: customer.uid, + customerId: customer.uid, email: contact.email, }; } @@ -57,22 +57,19 @@ export default class AuthService extends BaseService { if (!user) return null; const rules: string[] = []; - if (user.office_role) { - user.office_role.rules.forEach((rule) => { - rules.push(rule.name); - }); - return { - userId: user.uid, - openId: { providerName: providerName, userId: user.idNot }, - office_Id: user.office_membership.uid, - role: user.role.name, - rules: rules, - }; - } user.role.rules.forEach((rule) => { rules.push(rule.name); }); + + if (user.office_role) { + user.office_role.rules.forEach((rule) => { + if(!rules.includes(rule.name)) { + rules.push(rule.name); + } + }); + } + return { userId: user.uid, openId: { providerName: providerName, userId: user.idNot }, diff --git a/src/test/config/Init.ts b/src/test/config/Init.ts index 74721622..c3921d70 100644 --- a/src/test/config/Init.ts +++ b/src/test/config/Init.ts @@ -95,6 +95,7 @@ export const initRules = (rule: Rule): Promise => { return prisma.rules.create({ data: { name: rule.name, + label: rule.label, }, }); }; @@ -103,6 +104,7 @@ export const initRoles = (role: Role): Promise => { return prisma.roles.create({ data: { name: role.name, + label: role.label, }, }); }; @@ -154,6 +156,7 @@ export const initUsers = (user: User): Promise => { }, create: { name: user.role!.name, + label: user.role!.label }, }, },