✨ Only show rules by namespace (#102)
This commit is contained in:
commit
005210e201
@ -53,7 +53,7 @@
|
|||||||
"express": "^4.18.2",
|
"express": "^4.18.2",
|
||||||
"fp-ts": "^2.16.1",
|
"fp-ts": "^2.16.1",
|
||||||
"jsonwebtoken": "^9.0.0",
|
"jsonwebtoken": "^9.0.0",
|
||||||
"le-coffre-resources": "git@github.com:smart-chain-fr/leCoffre-resources.git#v2.85",
|
"le-coffre-resources": "git@github.com:smart-chain-fr/leCoffre-resources.git#v2.86",
|
||||||
"module-alias": "^2.2.2",
|
"module-alias": "^2.2.2",
|
||||||
"monocle-ts": "^2.3.13",
|
"monocle-ts": "^2.3.13",
|
||||||
"multer": "^1.4.5-lts.1",
|
"multer": "^1.4.5-lts.1",
|
||||||
|
@ -10,11 +10,12 @@ import authHandler from "@App/middlewares/AuthHandler";
|
|||||||
import ruleHandler from "@App/middlewares/RulesHandler";
|
import ruleHandler from "@App/middlewares/RulesHandler";
|
||||||
import officeRoleHandler from "@App/middlewares/OfficeMembershipHandlers/OfficeRoleHandler";
|
import officeRoleHandler from "@App/middlewares/OfficeMembershipHandlers/OfficeRoleHandler";
|
||||||
import roleHandler from "@App/middlewares/RolesHandler";
|
import roleHandler from "@App/middlewares/RolesHandler";
|
||||||
|
import RulesService from "@Services/admin/RulesService/RulesService";
|
||||||
|
|
||||||
@Controller()
|
@Controller()
|
||||||
@Service()
|
@Service()
|
||||||
export default class OfficeRolesController extends ApiController {
|
export default class OfficeRolesController extends ApiController {
|
||||||
constructor(private officeRolesService: OfficeRolesService) {
|
constructor(private officeRolesService: OfficeRolesService, private rulesService: RulesService) {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -30,7 +31,7 @@ export default class OfficeRolesController extends ApiController {
|
|||||||
query = JSON.parse(req.query["q"] as string);
|
query = JSON.parse(req.query["q"] as string);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(req.query["search"] && typeof req.query["search"] === "string") {
|
if (req.query["search"] && typeof req.query["search"] === "string") {
|
||||||
const filter = req.query["search"];
|
const filter = req.query["search"];
|
||||||
query = {
|
query = {
|
||||||
where: {
|
where: {
|
||||||
@ -39,7 +40,7 @@ export default class OfficeRolesController extends ApiController {
|
|||||||
mode: "insensitive",
|
mode: "insensitive",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const officeId: string = req.body.user.office_Id;
|
const officeId: string = req.body.user.office_Id;
|
||||||
@ -108,6 +109,18 @@ export default class OfficeRolesController extends ApiController {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (req.body.rules) {
|
||||||
|
const allRules = await this.rulesService.get({
|
||||||
|
where: {
|
||||||
|
namespace: "notary",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
req.body.rules = req.body.rules.filter((rule: any) => {
|
||||||
|
const ruleFound = allRules.find((r) => r.uid === rule.uid && r.namespace === "notary");
|
||||||
|
return ruleFound;
|
||||||
|
});
|
||||||
|
}
|
||||||
//init IOfficeRole resource with request body values
|
//init IOfficeRole resource with request body values
|
||||||
const officeRoleEntity = OfficeRole.hydrate<OfficeRole>(req.body);
|
const officeRoleEntity = OfficeRole.hydrate<OfficeRole>(req.body);
|
||||||
|
|
||||||
|
@ -26,6 +26,10 @@ export default class RulesController extends ApiController {
|
|||||||
query = JSON.parse(req.query["q"] as string);
|
query = JSON.parse(req.query["q"] as string);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
query.where = {
|
||||||
|
...query.where,
|
||||||
|
namespace: "notary",
|
||||||
|
};
|
||||||
//call service to get prisma entity
|
//call service to get prisma entity
|
||||||
const rulesEntities = await this.rulesService.get(query);
|
const rulesEntities = await this.rulesService.get(query);
|
||||||
|
|
||||||
@ -57,6 +61,11 @@ export default class RulesController extends ApiController {
|
|||||||
query = JSON.parse(req.query["q"] as string);
|
query = JSON.parse(req.query["q"] as string);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
query.where = {
|
||||||
|
...query.where,
|
||||||
|
namespace: "notary",
|
||||||
|
};
|
||||||
|
|
||||||
const ruleEntity = await this.rulesService.getByUid(uid, query);
|
const ruleEntity = await this.rulesService.getByUid(uid, query);
|
||||||
|
|
||||||
if (!ruleEntity) {
|
if (!ruleEntity) {
|
||||||
|
@ -0,0 +1,2 @@
|
|||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "rules" ADD COLUMN "namespace" VARCHAR(255) NOT NULL DEFAULT 'notary';
|
@ -299,7 +299,7 @@ model Rules {
|
|||||||
updated_at DateTime? @updatedAt
|
updated_at DateTime? @updatedAt
|
||||||
role Roles[] @relation("RolesHasRules")
|
role Roles[] @relation("RolesHasRules")
|
||||||
office_roles OfficeRoles[] @relation("OfficeRolesHasRules")
|
office_roles OfficeRoles[] @relation("OfficeRolesHasRules")
|
||||||
|
namespace String @db.VarChar(255) @default("notary")
|
||||||
@@map("rules")
|
@@map("rules")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -527,228 +527,266 @@ export default async function main() {
|
|||||||
label: "Lecture des utilisateurs",
|
label: "Lecture des utilisateurs",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "GET offices",
|
name: "GET offices",
|
||||||
label: "Lecture des offices",
|
label: "Lecture des offices",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "GET customers",
|
name: "GET customers",
|
||||||
label: "Lecture des clients",
|
label: "Lecture des clients",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "GET deeds",
|
name: "GET deeds",
|
||||||
label: "Lecture des actes",
|
label: "Lecture des actes",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "GET deed-types",
|
name: "GET deed-types",
|
||||||
label: "Lecture des types d'actes",
|
label: "Lecture des types d'actes",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "GET documents",
|
name: "GET documents",
|
||||||
label: "Lecture des documents",
|
label: "Lecture des documents",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "GET document-types",
|
name: "GET document-types",
|
||||||
label: "Lecture des types de documents",
|
label: "Lecture des types de documents",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "GET files",
|
name: "GET files",
|
||||||
label: "Lecture des fichiers",
|
label: "Lecture des fichiers",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "GET folders",
|
name: "GET folders",
|
||||||
label: "Lecture des dossiers",
|
label: "Lecture des dossiers",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "GET roles",
|
name: "GET roles",
|
||||||
label: "Lecture utilisateurs",
|
label: "Lecture utilisateurs",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "GET rules",
|
name: "GET rules",
|
||||||
label: "Lecture des droits",
|
label: "Lecture des droits",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "GET office-roles",
|
name: "GET office-roles",
|
||||||
label: "Lecture des rôles d'office",
|
label: "Lecture des rôles d'office",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "POST deeds",
|
name: "POST deeds",
|
||||||
label: "Création des actes",
|
label: "Création des actes",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "PUT deeds",
|
name: "PUT deeds",
|
||||||
label: "Modification des actes",
|
label: "Modification des actes",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "DELETE deeds",
|
name: "DELETE deeds",
|
||||||
label: "Suppression des actes",
|
label: "Suppression des actes",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "POST folders",
|
name: "POST folders",
|
||||||
label: "Création des dossiers",
|
label: "Création des dossiers",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "PUT folders",
|
name: "PUT folders",
|
||||||
label: "Modification des dossiers",
|
label: "Modification des dossiers",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "DELETE folders",
|
name: "DELETE folders",
|
||||||
label: "Suppression des dossiers",
|
label: "Suppression des dossiers",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "POST documents",
|
name: "POST documents",
|
||||||
label: "Création des documents",
|
label: "Création des documents",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "PUT documents",
|
name: "PUT documents",
|
||||||
label: "Modification des documents",
|
label: "Modification des documents",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "DELETE documents",
|
name: "DELETE documents",
|
||||||
label: "Suppression des documents",
|
label: "Suppression des documents",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "POST customers",
|
name: "POST customers",
|
||||||
label: "Création des clients",
|
label: "Création des clients",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "PUT customers",
|
name: "PUT customers",
|
||||||
label: "Modification des clients",
|
label: "Modification des clients",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "DELETE customers",
|
name: "DELETE customers",
|
||||||
label: "Suppression des clients",
|
label: "Suppression des clients",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "POST anchors",
|
name: "POST anchors",
|
||||||
label: "Ancrer un dossier",
|
label: "Ancrer un dossier",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "GET anchors",
|
name: "GET anchors",
|
||||||
label: "Vérifier l'ancrage un dossier",
|
label: "Vérifier l'ancrage un dossier",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "notary",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "POST deed-types",
|
name: "POST deed-types",
|
||||||
label: "Création des types d'actes",
|
label: "Création des types d'actes",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "admin",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "PUT deed-types",
|
name: "PUT deed-types",
|
||||||
label: "Modification des types d'actes",
|
label: "Modification des types d'actes",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "admin",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "DELETE deed-types",
|
name: "DELETE deed-types",
|
||||||
label: "Suppression des types d'actes",
|
label: "Suppression des types d'actes",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "admin",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "POST document-types",
|
name: "POST document-types",
|
||||||
label: "Création des types de documents",
|
label: "Création des types de documents",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "admin",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "PUT document-types",
|
name: "PUT document-types",
|
||||||
label: "Modification des types de documents",
|
label: "Modification des types de documents",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "admin",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "DELETE document-types",
|
name: "DELETE document-types",
|
||||||
label: "Suppression des types de documents",
|
label: "Suppression des types de documents",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "admin",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "POST office-roles",
|
name: "POST office-roles",
|
||||||
label: "Création des rôles d'office",
|
label: "Création des rôles d'office",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "admin",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "PUT office-roles",
|
name: "PUT office-roles",
|
||||||
label: "Modification des rôles d'office",
|
label: "Modification des rôles d'office",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "admin",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "DELETE office-roles",
|
name: "DELETE office-roles",
|
||||||
label: "Suppression des rôles d'office",
|
label: "Suppression des rôles d'office",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
},
|
namespace: "admin",
|
||||||
{
|
|
||||||
name: "DELETE office-roles",
|
|
||||||
label: "Suppression des rôles d'office",
|
|
||||||
created_at: new Date(),
|
|
||||||
updated_at: new Date(),
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "PUT users",
|
name: "PUT users",
|
||||||
label: "Modification des utilisateurs",
|
label: "Modification des utilisateurs",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "admin",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "DELETE office-roles",
|
||||||
|
label: "Suppression des rôles d'office",
|
||||||
|
created_at: new Date(),
|
||||||
|
updated_at: new Date(),
|
||||||
|
namespace: "super-admin",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "PUT offices",
|
name: "PUT offices",
|
||||||
label: "Modification des offices",
|
label: "Modification des offices",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
|
namespace: "super-admin",
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -765,7 +803,7 @@ export default async function main() {
|
|||||||
label: "Administrateur",
|
label: "Administrateur",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
rules: rules.slice(0, 35),
|
rules: rules.slice(0, 36),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "notary",
|
name: "notary",
|
||||||
@ -779,7 +817,7 @@ export default async function main() {
|
|||||||
label: "Utilisateur",
|
label: "Utilisateur",
|
||||||
created_at: new Date(),
|
created_at: new Date(),
|
||||||
updated_at: new Date(),
|
updated_at: new Date(),
|
||||||
rules: rules.slice(0,1),
|
rules: rules.slice(0, 1),
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -1317,6 +1355,7 @@ export default async function main() {
|
|||||||
data: {
|
data: {
|
||||||
name: rule.name,
|
name: rule.name,
|
||||||
label: rule.label,
|
label: rule.label,
|
||||||
|
namespace: rule.namespace,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
rule.uid = ruleCreated.uid;
|
rule.uid = ruleCreated.uid;
|
||||||
|
@ -31,7 +31,8 @@ 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
|
label: rule.label,
|
||||||
|
namespace: rule.namespace,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -48,7 +49,7 @@ export default class RulesRepository extends BaseRepository {
|
|||||||
},
|
},
|
||||||
data: {
|
data: {
|
||||||
name: rule.name,
|
name: rule.name,
|
||||||
label: rule.label
|
label: rule.label,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user