@strapi/content-manager 5.0.0-rc.8 → 5.0.0-rc.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/{ComponentConfigurationPage-DL1MHO8i.js → ComponentConfigurationPage-BOKmq7mz.js} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-DL1MHO8i.js.map → ComponentConfigurationPage-BOKmq7mz.js.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-D0dyDTwq.mjs → ComponentConfigurationPage-BwnO0su2.mjs} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-D0dyDTwq.mjs.map → ComponentConfigurationPage-BwnO0su2.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-13b7S5Cq.mjs → EditConfigurationPage-DJDSIf3D.mjs} +3 -3
- package/dist/_chunks/{EditConfigurationPage-13b7S5Cq.mjs.map → EditConfigurationPage-DJDSIf3D.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-CMaOf-A-.js → EditConfigurationPage-N3OaN53v.js} +3 -3
- package/dist/_chunks/{EditConfigurationPage-CMaOf-A-.js.map → EditConfigurationPage-N3OaN53v.js.map} +1 -1
- package/dist/_chunks/{EditViewPage-C3tIZ8F5.mjs → EditViewPage-IZbGSeL3.mjs} +19 -8
- package/dist/_chunks/EditViewPage-IZbGSeL3.mjs.map +1 -0
- package/dist/_chunks/{EditViewPage-BSVmMpRd.js → EditViewPage-l9qOdDUI.js} +19 -8
- package/dist/_chunks/EditViewPage-l9qOdDUI.js.map +1 -0
- package/dist/_chunks/{Field-DUCVth4C.js → Field-CWjyW47-.js} +89 -30
- package/dist/_chunks/Field-CWjyW47-.js.map +1 -0
- package/dist/_chunks/{Field-BvuT8cGL.mjs → Field-D3mNj-iY.mjs} +90 -31
- package/dist/_chunks/Field-D3mNj-iY.mjs.map +1 -0
- package/dist/_chunks/{Form-Cpl4W1ak.js → Form-DFXXFrJV.js} +22 -11
- package/dist/_chunks/Form-DFXXFrJV.js.map +1 -0
- package/dist/_chunks/{Form-BZmDNVr9.mjs → Form-Ddy3XYS-.mjs} +22 -11
- package/dist/_chunks/Form-Ddy3XYS-.mjs.map +1 -0
- package/dist/_chunks/{History-Cq_Hrzuu.mjs → History-BEFrLZfz.mjs} +4 -4
- package/dist/_chunks/{History-Cq_Hrzuu.mjs.map → History-BEFrLZfz.mjs.map} +1 -1
- package/dist/_chunks/{History-D4U2YISB.js → History-pesEeFFT.js} +4 -4
- package/dist/_chunks/{History-D4U2YISB.js.map → History-pesEeFFT.js.map} +1 -1
- package/dist/_chunks/{ListConfigurationPage-Bny6CdWe.js → ListConfigurationPage-BIoi-Sog.js} +14 -4
- package/dist/_chunks/ListConfigurationPage-BIoi-Sog.js.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-W-KQHmBv.mjs → ListConfigurationPage-CB_lBFVX.mjs} +14 -4
- package/dist/_chunks/ListConfigurationPage-CB_lBFVX.mjs.map +1 -0
- package/dist/_chunks/{ListViewPage-O8F1pBJo.js → ListViewPage-C6FK36UI.js} +3 -3
- package/dist/_chunks/{ListViewPage-O8F1pBJo.js.map → ListViewPage-C6FK36UI.js.map} +1 -1
- package/dist/_chunks/{ListViewPage-HBBnJa8K.mjs → ListViewPage-DBbH7Esr.mjs} +3 -3
- package/dist/_chunks/{ListViewPage-HBBnJa8K.mjs.map → ListViewPage-DBbH7Esr.mjs.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-B-gIhHWM.mjs → NoContentTypePage-BU9Omzp4.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-B-gIhHWM.mjs.map → NoContentTypePage-BU9Omzp4.mjs.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-CQWChGPw.js → NoContentTypePage-Dod8M_xM.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-CQWChGPw.js.map → NoContentTypePage-Dod8M_xM.js.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-XhOPl8wx.mjs → NoPermissionsPage-B88W05rh.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-XhOPl8wx.mjs.map → NoPermissionsPage-B88W05rh.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-CY46zxnM.js → NoPermissionsPage-CMLH3uMk.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-CY46zxnM.js.map → NoPermissionsPage-CMLH3uMk.js.map} +1 -1
- package/dist/_chunks/{Relations-vFZ6Wasg.mjs → Relations-BBJRxopY.mjs} +4 -4
- package/dist/_chunks/{Relations-vFZ6Wasg.mjs.map → Relations-BBJRxopY.mjs.map} +1 -1
- package/dist/_chunks/{Relations-C4gGfZRv.js → Relations-OXbsEvNt.js} +4 -4
- package/dist/_chunks/{Relations-C4gGfZRv.js.map → Relations-OXbsEvNt.js.map} +1 -1
- package/dist/_chunks/{index-Dpxg3ctD.mjs → index-BgiNQ7Q9.mjs} +79 -36
- package/dist/_chunks/index-BgiNQ7Q9.mjs.map +1 -0
- package/dist/_chunks/{index-5EMXLEM_.js → index-Bj8wwbdx.js} +78 -35
- package/dist/_chunks/index-Bj8wwbdx.js.map +1 -0
- package/dist/_chunks/{layout-P3eKO1Qy.js → layout-DBvOIgWG.js} +6 -6
- package/dist/_chunks/layout-DBvOIgWG.js.map +1 -0
- package/dist/_chunks/{layout-C0INpKap.mjs → layout-LOFMsdWo.mjs} +6 -6
- package/dist/_chunks/layout-LOFMsdWo.mjs.map +1 -0
- package/dist/_chunks/{relations-B1y0K6LE.js → relations-BLilXMyN.js} +2 -2
- package/dist/_chunks/{relations-B1y0K6LE.js.map → relations-BLilXMyN.js.map} +1 -1
- package/dist/_chunks/{relations-FBRRBWeO.mjs → relations-BTQKCDqX.mjs} +2 -2
- package/dist/_chunks/{relations-FBRRBWeO.mjs.map → relations-BTQKCDqX.mjs.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.d.ts +2 -2
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.d.ts +2 -2
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.d.ts +10 -22
- package/dist/admin/src/utils/validation.d.ts +4 -1
- package/dist/server/index.js +29 -18
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +29 -18
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/controllers/relations.d.ts.map +1 -1
- package/dist/server/src/policies/hasPermissions.d.ts.map +1 -1
- package/dist/server/src/services/permission-checker.d.ts.map +1 -1
- package/package.json +8 -8
- package/dist/_chunks/EditViewPage-BSVmMpRd.js.map +0 -1
- package/dist/_chunks/EditViewPage-C3tIZ8F5.mjs.map +0 -1
- package/dist/_chunks/Field-BvuT8cGL.mjs.map +0 -1
- package/dist/_chunks/Field-DUCVth4C.js.map +0 -1
- package/dist/_chunks/Form-BZmDNVr9.mjs.map +0 -1
- package/dist/_chunks/Form-Cpl4W1ak.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-Bny6CdWe.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-W-KQHmBv.mjs.map +0 -1
- package/dist/_chunks/index-5EMXLEM_.js.map +0 -1
- package/dist/_chunks/index-Dpxg3ctD.mjs.map +0 -1
- package/dist/_chunks/layout-C0INpKap.mjs.map +0 -1
- package/dist/_chunks/layout-P3eKO1Qy.js.map +0 -1
package/dist/server/index.mjs
CHANGED
@@ -1193,6 +1193,11 @@ const { createPolicy } = policy;
|
|
1193
1193
|
const hasPermissions = createPolicy({
|
1194
1194
|
name: "plugin::content-manager.hasPermissions",
|
1195
1195
|
validator: validateHasPermissionsInput,
|
1196
|
+
/**
|
1197
|
+
* NOTE: Action aliases are currently not checked at this level (policy).
|
1198
|
+
* This is currently the intended behavior to avoid changing the behavior of API related permissions.
|
1199
|
+
* If you want to add support for it, please create a dedicated RFC with a list of potential side effect this could have.
|
1200
|
+
*/
|
1196
1201
|
handler(ctx, config = {}) {
|
1197
1202
|
const { actions = [], hasAtLeastOne = false } = config;
|
1198
1203
|
const { userAbility } = ctx.state;
|
@@ -2299,20 +2304,13 @@ const sanitizeMainField = (model, mainField, userAbility) => {
|
|
2299
2304
|
userAbility,
|
2300
2305
|
model: model.uid
|
2301
2306
|
});
|
2302
|
-
|
2307
|
+
const isMainFieldListable = isListable(model, mainField);
|
2308
|
+
const canReadMainField = permissionChecker2.can.read(null, mainField);
|
2309
|
+
if (!isMainFieldListable || !canReadMainField) {
|
2303
2310
|
return "id";
|
2304
2311
|
}
|
2305
|
-
if (
|
2306
|
-
|
2307
|
-
const userPermissionChecker = getService$1("permission-checker").create({
|
2308
|
-
userAbility,
|
2309
|
-
model: "plugin::users-permissions.user"
|
2310
|
-
});
|
2311
|
-
if (userPermissionChecker.can.read()) {
|
2312
|
-
return "name";
|
2313
|
-
}
|
2314
|
-
}
|
2315
|
-
return "id";
|
2312
|
+
if (model.uid === "plugin::users-permissions.role") {
|
2313
|
+
return "name";
|
2316
2314
|
}
|
2317
2315
|
return mainField;
|
2318
2316
|
};
|
@@ -2570,9 +2568,7 @@ const relations = {
|
|
2570
2568
|
addFiltersClause(permissionQuery, { id: { $in: loadedIds } });
|
2571
2569
|
const sanitizedRes = await loadRelations({ id: entryId }, targetField, {
|
2572
2570
|
...strapi.get("query-params").transform(targetUid, permissionQuery),
|
2573
|
-
ordering: "desc"
|
2574
|
-
page: ctx.request.query.page,
|
2575
|
-
pageSize: ctx.request.query.pageSize
|
2571
|
+
ordering: "desc"
|
2576
2572
|
});
|
2577
2573
|
const relationsUnion = uniqBy("id", concat(sanitizedRes.results, res.results));
|
2578
2574
|
ctx.body = {
|
@@ -3478,12 +3474,27 @@ const createPermissionChecker = (strapi2) => ({ userAbility, model }) => {
|
|
3478
3474
|
ability: userAbility,
|
3479
3475
|
model
|
3480
3476
|
});
|
3481
|
-
const
|
3477
|
+
const { actionProvider } = strapi2.service("admin::permission");
|
3478
|
+
const toSubject = (entity) => {
|
3479
|
+
return entity ? permissionsManager.toSubject(entity, model) : model;
|
3480
|
+
};
|
3482
3481
|
const can = (action, entity, field) => {
|
3483
|
-
|
3482
|
+
const subject = toSubject(entity);
|
3483
|
+
const aliases = actionProvider.unstable_aliases(action, model);
|
3484
|
+
return (
|
3485
|
+
// Test the original action to see if it passes
|
3486
|
+
userAbility.can(action, subject, field) || // Else try every known alias if at least one of them succeed, then the user "can"
|
3487
|
+
aliases.some((alias) => userAbility.can(alias, subject, field))
|
3488
|
+
);
|
3484
3489
|
};
|
3485
3490
|
const cannot = (action, entity, field) => {
|
3486
|
-
|
3491
|
+
const subject = toSubject(entity);
|
3492
|
+
const aliases = actionProvider.unstable_aliases(action, model);
|
3493
|
+
return (
|
3494
|
+
// Test both the original action
|
3495
|
+
userAbility.cannot(action, subject, field) && // and every known alias, if all of them fail (cannot), then the user truly "cannot"
|
3496
|
+
aliases.every((alias) => userAbility.cannot(alias, subject, field))
|
3497
|
+
);
|
3487
3498
|
};
|
3488
3499
|
const sanitizeOutput = (data, { action = ACTIONS.read } = {}) => {
|
3489
3500
|
return permissionsManager.sanitizeOutput(data, { subject: toSubject(data), action });
|