From 232633fc937d4626498013a84a4e0b30aa93fcb0 Mon Sep 17 00:00:00 2001 From: OxSaitama Date: Wed, 16 Aug 2023 16:27:52 +0200 Subject: [PATCH] add role and rules label --- package-lock.json | 4 +- package.json | 2 +- .../20230816144031_v22/migration.sql | 12 ++ src/common/databases/schema.prisma | 2 + src/common/databases/seeders/seeder.ts | 114 +++++++++--------- src/common/repositories/UsersRepository.ts | 1 + .../notary/RolesService/RolesService.ts | 1 - .../notary/RulesService/RulesService.ts | 1 - .../notary/UsersService/UsersService.ts | 20 +-- 9 files changed, 73 insertions(+), 84 deletions(-) create mode 100644 src/common/databases/migrations/20230816144031_v22/migration.sql diff --git a/package-lock.json b/package-lock.json index e6e9857e..d147eb2c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ "cron": "^2.3.1", "express": "^4.18.2", "jsonwebtoken": "^9.0.0", - "le-coffre-resources": "git@github.com:smart-chain-fr/leCoffre-resources.git#v2.67", + "le-coffre-resources": "git@github.com:smart-chain-fr/leCoffre-resources.git#v2.68", "module-alias": "^2.2.2", "multer": "^1.4.5-lts.1", "next": "^13.1.5", @@ -4030,7 +4030,7 @@ } }, "node_modules/le-coffre-resources": { - "resolved": "git+ssh://git@github.com/smart-chain-fr/leCoffre-resources.git#e0b1ff55a860f624b7708d37f5bfe3072ef63e5f", + "resolved": "git+ssh://git@github.com/smart-chain-fr/leCoffre-resources.git#ad0660abcb9de6ee7f396dce9b25fa7731a8e3b8", "license": "MIT", "dependencies": { "class-transformer": "^0.5.1", diff --git a/package.json b/package.json index 02c81b78..19fd003b 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "cron": "^2.3.1", "express": "^4.18.2", "jsonwebtoken": "^9.0.0", - "le-coffre-resources": "git@github.com:smart-chain-fr/leCoffre-resources.git#v2.67", + "le-coffre-resources": "git@github.com:smart-chain-fr/leCoffre-resources.git#v2.68", "module-alias": "^2.2.2", "multer": "^1.4.5-lts.1", "next": "^13.1.5", diff --git a/src/common/databases/migrations/20230816144031_v22/migration.sql b/src/common/databases/migrations/20230816144031_v22/migration.sql new file mode 100644 index 00000000..59a287ba --- /dev/null +++ b/src/common/databases/migrations/20230816144031_v22/migration.sql @@ -0,0 +1,12 @@ +/* + Warnings: + + - Added the required column `label` to the `roles` table without a default value. This is not possible if the table is not empty. + - Added the required column `label` to the `rules` table without a default value. This is not possible if the table is not empty. + +*/ +-- AlterTable +ALTER TABLE "roles" ADD COLUMN "label" VARCHAR(255) NOT NULL; + +-- AlterTable +ALTER TABLE "rules" ADD COLUMN "label" VARCHAR(255) NOT NULL; diff --git a/src/common/databases/schema.prisma b/src/common/databases/schema.prisma index 98ff92ea..858709ed 100644 --- a/src/common/databases/schema.prisma +++ b/src/common/databases/schema.prisma @@ -241,6 +241,7 @@ model DeedTypes { model Roles { uid String @id @unique @default(uuid()) name String @db.VarChar(255) + label String @db.VarChar(255) created_at DateTime? @default(now()) updated_at DateTime? @updatedAt rules Rules[] @relation("RolesHasRules") @@ -265,6 +266,7 @@ model OfficeRoles { model Rules { uid String @id @unique @default(uuid()) name String @db.VarChar(255) + label String @db.VarChar(255) created_at DateTime? @default(now()) updated_at DateTime? @updatedAt role Roles[] @relation("RolesHasRules") diff --git a/src/common/databases/seeders/seeder.ts b/src/common/databases/seeders/seeder.ts index 700442cf..cfc8ccda 100644 --- a/src/common/databases/seeders/seeder.ts +++ b/src/common/databases/seeders/seeder.ts @@ -515,301 +515,289 @@ export default async function main() { const rules: Rule[] = [ { name: "GET users", + label: "Lecture des utilisateurs", created_at: new Date(), updated_at: new Date(), }, { name: "GET offices", + label: "Lecture des offices", created_at: new Date(), updated_at: new Date(), }, { name: "GET customers", + label: "Lecture des clients", created_at: new Date(), updated_at: new Date(), }, { name: "GET deeds", + label: "Lecture des actes", created_at: new Date(), updated_at: new Date(), }, { name: "GET deed-types", + label: "Lecture des types d'actes", created_at: new Date(), updated_at: new Date(), }, { name: "GET documents", + label: "Lecture des documents", created_at: new Date(), updated_at: new Date(), }, { name: "GET document-types", + label: "Lecture des types de documents", created_at: new Date(), updated_at: new Date(), }, { name: "GET files", + label: "Lecture des fichiers", created_at: new Date(), updated_at: new Date(), }, { name: "GET folders", + label: "Lecture des dossiers", created_at: new Date(), updated_at: new Date(), }, { name: "GET roles", + label: "Lecture utilisateurs", created_at: new Date(), updated_at: new Date(), }, { name: "GET rules", + label: "Lecture des droits", created_at: new Date(), updated_at: new Date(), }, { name: "GET office-roles", + label: "Lecture des rôles d'office", created_at: new Date(), updated_at: new Date(), }, { name: "PUT users", + label: "Modification des utilisateurs", created_at: new Date(), updated_at: new Date(), }, { name: "PUT offices", + label: "Modification des offices", created_at: new Date(), updated_at: new Date(), }, { name: "PUT customers", + label: "Modification des clients", created_at: new Date(), updated_at: new Date(), }, { name: "PUT deeds", + label: "Modification des actes", created_at: new Date(), updated_at: new Date(), }, { name: "PUT deed-types", + label: "Modification des types d'actes", created_at: new Date(), updated_at: new Date(), }, { name: "PUT documents", + label: "Modification des documents", created_at: new Date(), updated_at: new Date(), }, { name: "PUT document-types", + label: "Modification des types de documents", created_at: new Date(), updated_at: new Date(), }, { name: "PUT files", + label: "Modification des fichiers", created_at: new Date(), updated_at: new Date(), }, { name: "PUT folders", + label: "Modification des dossiers", created_at: new Date(), updated_at: new Date(), }, { name: "PUT roles", + label: "Modification des rôles", created_at: new Date(), updated_at: new Date(), }, { name: "PUT rules", + label: "Modification des droits", created_at: new Date(), updated_at: new Date(), }, { name: "PUT office-roles", + label: "Modification des rôles d'office", created_at: new Date(), updated_at: new Date(), }, { name: "POST users", + label: "Création des utilisateurs", created_at: new Date(), updated_at: new Date(), }, { name: "POST offices", + label: "Création des offices", created_at: new Date(), updated_at: new Date(), }, { name: "POST customers", + label: "Création des clients", created_at: new Date(), updated_at: new Date(), }, { name: "POST deeds", + label: "Création des actes", created_at: new Date(), updated_at: new Date(), }, { name: "POST deed-types", + label: "Création des types d'actes", created_at: new Date(), updated_at: new Date(), }, { name: "POST documents", + label: "Création des documents", created_at: new Date(), updated_at: new Date(), }, { name: "POST document-types", + label: "Création des types de documents", created_at: new Date(), updated_at: new Date(), }, { name: "POST files", + label: "Création des fichiers", created_at: new Date(), updated_at: new Date(), }, { name: "POST folders", + label: "Création des dossiers", created_at: new Date(), updated_at: new Date(), }, { name: "POST roles", + label: "Création des rôles", created_at: new Date(), updated_at: new Date(), }, { name: "POST rules", + label: "Création des droits", created_at: new Date(), updated_at: new Date(), }, { name: "POST office-roles", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST users", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST offices", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST customers", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST deeds", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST deed-types", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST documents", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST document-types", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST files", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST folders", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST roles", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST rules", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST office-roles", + label: "Création des rôles d'office", created_at: new Date(), updated_at: new Date(), }, { name: "DELETE users", + label: "Suppression des utilisateurs", created_at: new Date(), updated_at: new Date(), }, { name: "DELETE offices", + label: "Suppression des offices", created_at: new Date(), updated_at: new Date(), }, { name: "DELETE customers", + label: "Suppression des clients", created_at: new Date(), updated_at: new Date(), }, { name: "DELETE deeds", + label: "Suppression des actes", created_at: new Date(), updated_at: new Date(), }, { name: "DELETE deed-types", + label: "Suppression des types d'actes", created_at: new Date(), updated_at: new Date(), }, { name: "DELETE documents", + label: "Suppression des documents", created_at: new Date(), updated_at: new Date(), }, { name: "DELETE document-types", + label: "Suppression des types de documents", created_at: new Date(), updated_at: new Date(), }, { name: "DELETE files", + label: "Suppression des fichiers", created_at: new Date(), updated_at: new Date(), }, { name: "DELETE folders", + label: "Suppression des dossiers", created_at: new Date(), updated_at: new Date(), }, { name: "DELETE roles", + label: "Suppression des rôles", created_at: new Date(), updated_at: new Date(), }, { name: "DELETE rules", + label: "Suppression des droits", created_at: new Date(), updated_at: new Date(), }, { name: "DELETE office-roles", + label: "Suppression des rôles d'office", created_at: new Date(), updated_at: new Date(), }, @@ -818,24 +806,28 @@ export default async function main() { const roles: Role[] = [ { name: "super-admin", + label: "Super administrateur", created_at: new Date(), updated_at: new Date(), rules: rules, }, { name: "admin", + label: "Administrateur", created_at: new Date(), updated_at: new Date(), rules: rules.slice(0, 33), }, { name: "notary", + label: "Notaire", created_at: new Date(), updated_at: new Date(), rules: rules.slice(0, 22), }, { name: "default", + label: "Utilisateur", created_at: new Date(), updated_at: new Date(), rules: rules.slice(0, 11), @@ -1381,6 +1373,7 @@ export default async function main() { const ruleCreated = await prisma.rules.create({ data: { name: rule.name, + label: rule.label, }, }); rule.uid = ruleCreated.uid; @@ -1390,6 +1383,7 @@ export default async function main() { const roleCreated = await prisma.roles.create({ data: { name: role.name, + label: role.label, rules: { connect: role.rules?.map((rule) => ({ uid: rule.uid!, diff --git a/src/common/repositories/UsersRepository.ts b/src/common/repositories/UsersRepository.ts index 49673146..739aea8f 100644 --- a/src/common/repositories/UsersRepository.ts +++ b/src/common/repositories/UsersRepository.ts @@ -87,6 +87,7 @@ export default class UsersRepository extends BaseRepository { /** * @description : Update data from a user */ + public async update(uid: string, user: User): Promise { const updateArgs: Prisma.UsersUpdateArgs = { where: { diff --git a/src/services/notary/RolesService/RolesService.ts b/src/services/notary/RolesService/RolesService.ts index f59c26b1..6e652687 100644 --- a/src/services/notary/RolesService/RolesService.ts +++ b/src/services/notary/RolesService/RolesService.ts @@ -1,5 +1,4 @@ import BaseService from "@Services/BaseService"; -import "reflect-metadata"; import { Service } from "typedi"; import RolesRepository from "@Repositories/RolesRepository"; import { Prisma } from "@prisma/client"; diff --git a/src/services/notary/RulesService/RulesService.ts b/src/services/notary/RulesService/RulesService.ts index e52ad9bf..c59c9133 100644 --- a/src/services/notary/RulesService/RulesService.ts +++ b/src/services/notary/RulesService/RulesService.ts @@ -1,5 +1,4 @@ import BaseService from "@Services/BaseService"; -import "reflect-metadata"; import { Service } from "typedi"; import RulesRepository from "@Repositories/RulesRepository"; import { Prisma } from "@prisma/client"; diff --git a/src/services/notary/UsersService/UsersService.ts b/src/services/notary/UsersService/UsersService.ts index f6927c87..5efbfff9 100644 --- a/src/services/notary/UsersService/UsersService.ts +++ b/src/services/notary/UsersService/UsersService.ts @@ -1,9 +1,7 @@ import BaseService from "@Services/BaseService"; -import "reflect-metadata"; import { Service } from "typedi"; import UsersRepository from "@Repositories/UsersRepository"; -import User from "le-coffre-resources/dist/Notary"; -import { Prisma, Users } from "@prisma/client"; +import { Prisma } from "@prisma/client"; @Service() export default class UsersService extends BaseService { @@ -19,22 +17,6 @@ export default class UsersService extends BaseService { return this.userRepository.findMany(query); } - /** - * @description : Create a user - * @throws {Error} If user couldn't be created - */ - public create(userEntity: User): Promise { - return this.userRepository.create(userEntity); - } - - /** - * @description : Modify a user - * @throws {Error} If user modification failed - */ - public update(uid: string, userEntity: User): Promise { - return this.userRepository.update(uid, userEntity); - } - /** * @description : Get a user by uid * @throws {Error} If user cannot be get by uid