Skip to content

Commit ef64982

Browse files
committed
feat: add rbac policies for new product option endpoints
1 parent a52de98 commit ef64982

2 files changed

Lines changed: 38 additions & 2 deletions

File tree

packages/medusa/src/api/admin/product-options/middlewares.ts

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
import * as QueryConfig from "./query-config"
2-
import { MiddlewareRoute } from "@medusajs/framework/http"
31
import {
42
validateAndTransformBody,
53
validateAndTransformQuery,
64
} from "@medusajs/framework"
5+
import { MiddlewareRoute } from "@medusajs/framework/http"
6+
import { PolicyOperation } from "@medusajs/framework/utils"
7+
import * as QueryConfig from "./query-config"
8+
import { Entities } from "./query-config"
79
import {
810
AdminCreateProductOption,
911
AdminGetProductOptionParams,
@@ -12,6 +14,15 @@ import {
1214
} from "./validators"
1315

1416
export const adminProductOptionRoutesMiddlewares: MiddlewareRoute[] = [
17+
{
18+
matcher: "/admin/product-options/*",
19+
policies: [
20+
{
21+
resource: Entities.product_option,
22+
operation: PolicyOperation.read,
23+
},
24+
],
25+
},
1526
{
1627
method: ["GET"],
1728
matcher: "/admin/product-options",
@@ -42,6 +53,12 @@ export const adminProductOptionRoutesMiddlewares: MiddlewareRoute[] = [
4253
QueryConfig.retrieveProductOptionsTransformQueryConfig
4354
),
4455
],
56+
policies: [
57+
{
58+
resource: Entities.product_option,
59+
operation: PolicyOperation.create,
60+
},
61+
],
4562
},
4663
{
4764
method: ["POST"],
@@ -53,9 +70,22 @@ export const adminProductOptionRoutesMiddlewares: MiddlewareRoute[] = [
5370
QueryConfig.retrieveProductOptionsTransformQueryConfig
5471
),
5572
],
73+
policies: [
74+
{
75+
resource: Entities.product_option,
76+
operation: PolicyOperation.update,
77+
},
78+
],
5679
},
5780
{
5881
method: ["DELETE"],
5982
matcher: "/admin/product-options/:id",
83+
middlewares: [],
84+
policies: [
85+
{
86+
resource: Entities.product_option,
87+
operation: PolicyOperation.delete,
88+
},
89+
],
6090
},
6191
]

packages/medusa/src/api/admin/product-options/query-config.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
export enum Entities {
2+
product_option = "product_option",
3+
}
4+
15
export const defaultAdminProductOptionsFields = [
26
"id",
37
"title",
@@ -12,10 +16,12 @@ export const defaultAdminProductOptionsFields = [
1216
export const retrieveProductOptionsTransformQueryConfig = {
1317
defaults: defaultAdminProductOptionsFields,
1418
isList: false,
19+
entity: Entities.product_option,
1520
}
1621

1722
export const listProductOptionsTransformQueryConfig = {
1823
...retrieveProductOptionsTransformQueryConfig,
1924
defaultLimit: 20,
2025
isList: true,
26+
entity: Entities.product_option,
2127
}

0 commit comments

Comments
 (0)