Skip to content

Commit 059dd1a

Browse files
committed
chore(api):extract registry manager security preset to shared middleware
1 parent b9763e2 commit 059dd1a

File tree

4 files changed

+19
-13
lines changed

4 files changed

+19
-13
lines changed

packages/reva-api/modules/certification-authority/certification-authority.security.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import { hasRole } from "../shared/security/middlewares";
1+
import { hasRole, whenHasRole } from "../shared/security/middlewares";
22
import {
33
defaultSecurity,
44
isAdmin,
55
isAdminOrCertificationAuthority,
6+
isAdminOrCertificationRegistryManagerOfCertification,
67
isAdminOrManager,
78
isAnyone,
89
} from "../shared/security/presets";
@@ -45,7 +46,8 @@ export const resolversSecurityMap = {
4546
"Mutation.certification_authority_updateCertificationAuthorityDepartments":
4647
isAdmin,
4748

48-
"Certification.certificationAuthorityStructure": isAdmin,
49+
"Certification.certificationAuthorityStructure":
50+
isAdminOrCertificationRegistryManagerOfCertification,
4951

5052
"CertificationAuthority.certificationAuthorityStructure": isAdmin,
5153
"CertificationAuthority.account": isAdmin,

packages/reva-api/modules/referential/referential.security.ts

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
1-
import { isCertificationRegistryManagerOfCertification } from "../certification-authority/security/isCertificationRegistryManagerOfCertification.security";
21
import { hasRole, whenHasRole } from "../shared/security/middlewares";
3-
import { defaultSecurity, isAnyone } from "../shared/security/presets";
4-
5-
const isAdminOrCertificationRegistryManagerOfCertification = [
6-
hasRole(["admin", "manage_certification_registry"]),
7-
whenHasRole(
8-
"manage_certification_registry",
9-
isCertificationRegistryManagerOfCertification,
10-
),
11-
];
2+
import {
3+
defaultSecurity,
4+
isAdminOrCertificationRegistryManagerOfCertification,
5+
isAnyone,
6+
} from "../shared/security/presets";
127

138
export const referentialResolversSecurityMap = {
149
"Mutation.*": defaultSecurity,
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { IFieldResolver, MercuriusContext } from "mercurius";
2-
import { isUserCertificationRegistryManagerOfCertification } from "../features/isUserCertificationRegistryManagerOfCertification";
2+
import { isUserCertificationRegistryManagerOfCertification } from "../../../certification-authority/features/isUserCertificationRegistryManagerOfCertification";
33

44
export const isCertificationRegistryManagerOfCertification =
55
(next: IFieldResolver<unknown>) =>

packages/reva-api/modules/shared/security/presets.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
import { isCandidateOwnerOfCandidacy } from "./middlewares/isCandidateOwnerOfCandidacy.security";
1010
import { isFeasibilityManager } from "./middlewares/isFeasibilityManager";
1111
import { isUserOwnerOfCandidate } from "./middlewares/isUserOwnerOfCandidate";
12+
import { isCertificationRegistryManagerOfCertification } from "./middlewares/isCertificationRegistryManagerOfCertification.security";
1213

1314
export const isAdminOrManager = [hasRole(["admin", "manage_candidacy"])];
1415

@@ -55,3 +56,11 @@ export const isOwnerOrCanManageCandidacy = [
5556
whenHasRole("manage_candidacy", isCandidacyOwner),
5657
whenHasRole("candidate", isCandidateOwnerOfCandidacy),
5758
];
59+
60+
export const isAdminOrCertificationRegistryManagerOfCertification = [
61+
hasRole(["admin", "manage_certification_registry"]),
62+
whenHasRole(
63+
"manage_certification_registry",
64+
isCertificationRegistryManagerOfCertification,
65+
),
66+
];

0 commit comments

Comments
 (0)