@strapi/content-manager 5.0.0-rc.7 → 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.
Files changed (82) hide show
  1. package/dist/_chunks/{ComponentConfigurationPage-BNxtMIfV.js → ComponentConfigurationPage-BOKmq7mz.js} +3 -3
  2. package/dist/_chunks/{ComponentConfigurationPage-BNxtMIfV.js.map → ComponentConfigurationPage-BOKmq7mz.js.map} +1 -1
  3. package/dist/_chunks/{ComponentConfigurationPage-BWOQWCv2.mjs → ComponentConfigurationPage-BwnO0su2.mjs} +3 -3
  4. package/dist/_chunks/{ComponentConfigurationPage-BWOQWCv2.mjs.map → ComponentConfigurationPage-BwnO0su2.mjs.map} +1 -1
  5. package/dist/_chunks/{EditConfigurationPage-GTp-Ucnw.mjs → EditConfigurationPage-DJDSIf3D.mjs} +3 -3
  6. package/dist/_chunks/{EditConfigurationPage-GTp-Ucnw.mjs.map → EditConfigurationPage-DJDSIf3D.mjs.map} +1 -1
  7. package/dist/_chunks/{EditConfigurationPage-D340bYlT.js → EditConfigurationPage-N3OaN53v.js} +3 -3
  8. package/dist/_chunks/{EditConfigurationPage-D340bYlT.js.map → EditConfigurationPage-N3OaN53v.js.map} +1 -1
  9. package/dist/_chunks/{EditViewPage-BVMS5hT-.mjs → EditViewPage-IZbGSeL3.mjs} +19 -8
  10. package/dist/_chunks/EditViewPage-IZbGSeL3.mjs.map +1 -0
  11. package/dist/_chunks/{EditViewPage-CXkmnAvI.js → EditViewPage-l9qOdDUI.js} +19 -8
  12. package/dist/_chunks/EditViewPage-l9qOdDUI.js.map +1 -0
  13. package/dist/_chunks/{Field-Ibi32diw.js → Field-CWjyW47-.js} +89 -30
  14. package/dist/_chunks/Field-CWjyW47-.js.map +1 -0
  15. package/dist/_chunks/{Field-nNgv5bpd.mjs → Field-D3mNj-iY.mjs} +90 -31
  16. package/dist/_chunks/Field-D3mNj-iY.mjs.map +1 -0
  17. package/dist/_chunks/{Form-Dhnh34ym.js → Form-DFXXFrJV.js} +22 -11
  18. package/dist/_chunks/Form-DFXXFrJV.js.map +1 -0
  19. package/dist/_chunks/{Form-DodJsI2A.mjs → Form-Ddy3XYS-.mjs} +22 -11
  20. package/dist/_chunks/Form-Ddy3XYS-.mjs.map +1 -0
  21. package/dist/_chunks/{History-CKCSQXz_.mjs → History-BEFrLZfz.mjs} +4 -4
  22. package/dist/_chunks/{History-CKCSQXz_.mjs.map → History-BEFrLZfz.mjs.map} +1 -1
  23. package/dist/_chunks/{History-C9auUkDi.js → History-pesEeFFT.js} +4 -4
  24. package/dist/_chunks/{History-C9auUkDi.js.map → History-pesEeFFT.js.map} +1 -1
  25. package/dist/_chunks/{ListConfigurationPage-Bg4rWUjX.js → ListConfigurationPage-BIoi-Sog.js} +14 -4
  26. package/dist/_chunks/ListConfigurationPage-BIoi-Sog.js.map +1 -0
  27. package/dist/_chunks/{ListConfigurationPage-CKEC4ttG.mjs → ListConfigurationPage-CB_lBFVX.mjs} +14 -4
  28. package/dist/_chunks/ListConfigurationPage-CB_lBFVX.mjs.map +1 -0
  29. package/dist/_chunks/{ListViewPage-C2gIeYHG.js → ListViewPage-C6FK36UI.js} +3 -3
  30. package/dist/_chunks/{ListViewPage-C2gIeYHG.js.map → ListViewPage-C6FK36UI.js.map} +1 -1
  31. package/dist/_chunks/{ListViewPage-B7_WJUjG.mjs → ListViewPage-DBbH7Esr.mjs} +3 -3
  32. package/dist/_chunks/{ListViewPage-B7_WJUjG.mjs.map → ListViewPage-DBbH7Esr.mjs.map} +1 -1
  33. package/dist/_chunks/{NoContentTypePage-Ckem6Ll6.mjs → NoContentTypePage-BU9Omzp4.mjs} +2 -2
  34. package/dist/_chunks/{NoContentTypePage-Ckem6Ll6.mjs.map → NoContentTypePage-BU9Omzp4.mjs.map} +1 -1
  35. package/dist/_chunks/{NoContentTypePage-DqgdUfyn.js → NoContentTypePage-Dod8M_xM.js} +2 -2
  36. package/dist/_chunks/{NoContentTypePage-DqgdUfyn.js.map → NoContentTypePage-Dod8M_xM.js.map} +1 -1
  37. package/dist/_chunks/{NoPermissionsPage-BO-GEjA4.mjs → NoPermissionsPage-B88W05rh.mjs} +2 -2
  38. package/dist/_chunks/{NoPermissionsPage-BO-GEjA4.mjs.map → NoPermissionsPage-B88W05rh.mjs.map} +1 -1
  39. package/dist/_chunks/{NoPermissionsPage-CF29Q-sW.js → NoPermissionsPage-CMLH3uMk.js} +2 -2
  40. package/dist/_chunks/{NoPermissionsPage-CF29Q-sW.js.map → NoPermissionsPage-CMLH3uMk.js.map} +1 -1
  41. package/dist/_chunks/{Relations-DItV5eow.mjs → Relations-BBJRxopY.mjs} +4 -4
  42. package/dist/_chunks/{Relations-DItV5eow.mjs.map → Relations-BBJRxopY.mjs.map} +1 -1
  43. package/dist/_chunks/{Relations-C0uC9J4f.js → Relations-OXbsEvNt.js} +4 -4
  44. package/dist/_chunks/{Relations-C0uC9J4f.js.map → Relations-OXbsEvNt.js.map} +1 -1
  45. package/dist/_chunks/{index-DrNe6ctw.mjs → index-BgiNQ7Q9.mjs} +93 -37
  46. package/dist/_chunks/index-BgiNQ7Q9.mjs.map +1 -0
  47. package/dist/_chunks/{index-Dd0nXyJF.js → index-Bj8wwbdx.js} +92 -36
  48. package/dist/_chunks/index-Bj8wwbdx.js.map +1 -0
  49. package/dist/_chunks/{layout-CLLtt_5O.js → layout-DBvOIgWG.js} +6 -6
  50. package/dist/_chunks/layout-DBvOIgWG.js.map +1 -0
  51. package/dist/_chunks/{layout-B3ez7kvr.mjs → layout-LOFMsdWo.mjs} +6 -6
  52. package/dist/_chunks/layout-LOFMsdWo.mjs.map +1 -0
  53. package/dist/_chunks/{relations-bRxcNv1q.js → relations-BLilXMyN.js} +2 -2
  54. package/dist/_chunks/{relations-bRxcNv1q.js.map → relations-BLilXMyN.js.map} +1 -1
  55. package/dist/_chunks/{relations-B0hlsUU_.mjs → relations-BTQKCDqX.mjs} +2 -2
  56. package/dist/_chunks/{relations-B0hlsUU_.mjs.map → relations-BTQKCDqX.mjs.map} +1 -1
  57. package/dist/admin/index.js +1 -1
  58. package/dist/admin/index.mjs +1 -1
  59. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.d.ts +2 -2
  60. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.d.ts +2 -2
  61. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.d.ts +10 -22
  62. package/dist/admin/src/utils/validation.d.ts +4 -1
  63. package/dist/server/index.js +29 -18
  64. package/dist/server/index.js.map +1 -1
  65. package/dist/server/index.mjs +29 -18
  66. package/dist/server/index.mjs.map +1 -1
  67. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  68. package/dist/server/src/policies/hasPermissions.d.ts.map +1 -1
  69. package/dist/server/src/services/permission-checker.d.ts.map +1 -1
  70. package/package.json +8 -8
  71. package/dist/_chunks/EditViewPage-BVMS5hT-.mjs.map +0 -1
  72. package/dist/_chunks/EditViewPage-CXkmnAvI.js.map +0 -1
  73. package/dist/_chunks/Field-Ibi32diw.js.map +0 -1
  74. package/dist/_chunks/Field-nNgv5bpd.mjs.map +0 -1
  75. package/dist/_chunks/Form-Dhnh34ym.js.map +0 -1
  76. package/dist/_chunks/Form-DodJsI2A.mjs.map +0 -1
  77. package/dist/_chunks/ListConfigurationPage-Bg4rWUjX.js.map +0 -1
  78. package/dist/_chunks/ListConfigurationPage-CKEC4ttG.mjs.map +0 -1
  79. package/dist/_chunks/index-Dd0nXyJF.js.map +0 -1
  80. package/dist/_chunks/index-DrNe6ctw.mjs.map +0 -1
  81. package/dist/_chunks/layout-B3ez7kvr.mjs.map +0 -1
  82. package/dist/_chunks/layout-CLLtt_5O.js.map +0 -1
@@ -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
- if (!isListable(model, mainField)) {
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 (permissionChecker2.cannot.read(null, mainField)) {
2306
- if (model.uid === "plugin::users-permissions.role") {
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 toSubject = (entity) => entity ? permissionsManager.toSubject(entity, model) : model;
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
- return userAbility.can(action, toSubject(entity), field);
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
- return userAbility.cannot(action, toSubject(entity), field);
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 });