refacto rules assignment in jwt

This commit is contained in:
OxSaitama 2023-08-17 11:28:30 +02:00
parent 04871a0d10
commit 527a4fd837
5 changed files with 18 additions and 21 deletions

View File

@ -835,13 +835,6 @@ export default async function main() {
]; ];
const officeRoles: OfficeRole[] = [ const officeRoles: OfficeRole[] = [
{
name: "admin",
created_at: new Date(),
updated_at: new Date(),
office: offices[0]!,
rules: rules.slice(0, 40),
},
{ {
name: "Notaire", name: "Notaire",
created_at: new Date(), created_at: new Date(),

View File

@ -31,6 +31,7 @@ export default class RolesRepository extends BaseRepository {
const createArgs: Prisma.RolesCreateArgs = { const createArgs: Prisma.RolesCreateArgs = {
data: { data: {
name: role.name, name: role.name,
label: role.label,
rules: { rules: {
connect: role.rules?.map((rule) => ({ connect: role.rules?.map((rule) => ({
uid: rule.uid!, uid: rule.uid!,
@ -52,6 +53,7 @@ export default class RolesRepository extends BaseRepository {
}, },
data: { data: {
name: role.name, name: role.name,
label: role.label,
rules: { rules: {
set: role.rules?.map((rule) => ({ set: role.rules?.map((rule) => ({
uid: rule.uid!, uid: rule.uid!,

View File

@ -31,6 +31,7 @@ export default class RulesRepository extends BaseRepository {
const createArgs: Prisma.RulesCreateArgs = { const createArgs: Prisma.RulesCreateArgs = {
data: { data: {
name: rule.name, name: rule.name,
label: rule.label
}, },
}; };
@ -47,6 +48,7 @@ export default class RulesRepository extends BaseRepository {
}, },
data: { data: {
name: rule.name, name: rule.name,
label: rule.label
}, },
}; };

View File

@ -12,7 +12,7 @@ enum PROVIDER_OPENID {
} }
interface ICustomerJwtPayload { interface ICustomerJwtPayload {
userId: string; customerId: string;
email: string; email: string;
} }
@ -46,7 +46,7 @@ export default class AuthService extends BaseService {
} }
return { return {
userId: customer.uid, customerId: customer.uid,
email: contact.email, email: contact.email,
}; };
} }
@ -57,22 +57,19 @@ export default class AuthService extends BaseService {
if (!user) return null; if (!user) return null;
const rules: string[] = []; 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) => { user.role.rules.forEach((rule) => {
rules.push(rule.name); rules.push(rule.name);
}); });
if (user.office_role) {
user.office_role.rules.forEach((rule) => {
if(!rules.includes(rule.name)) {
rules.push(rule.name);
}
});
}
return { return {
userId: user.uid, userId: user.uid,
openId: { providerName: providerName, userId: user.idNot }, openId: { providerName: providerName, userId: user.idNot },

View File

@ -95,6 +95,7 @@ export const initRules = (rule: Rule): Promise<Rules> => {
return prisma.rules.create({ return prisma.rules.create({
data: { data: {
name: rule.name, name: rule.name,
label: rule.label,
}, },
}); });
}; };
@ -103,6 +104,7 @@ export const initRoles = (role: Role): Promise<Roles> => {
return prisma.roles.create({ return prisma.roles.create({
data: { data: {
name: role.name, name: role.name,
label: role.label,
}, },
}); });
}; };
@ -154,6 +156,7 @@ export const initUsers = (user: User): Promise<Users> => {
}, },
create: { create: {
name: user.role!.name, name: user.role!.name,
label: user.role!.label
}, },
}, },
}, },