@strapi/review-workflows 5.41.0 → 5.42.0

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 (54) hide show
  1. package/dist/admin/routes/settings/components/Stages.js +26 -14
  2. package/dist/admin/routes/settings/components/Stages.js.map +1 -1
  3. package/dist/admin/routes/settings/components/Stages.mjs +26 -14
  4. package/dist/admin/routes/settings/components/Stages.mjs.map +1 -1
  5. package/dist/admin/routes/settings/id.js +21 -6
  6. package/dist/admin/routes/settings/id.js.map +1 -1
  7. package/dist/admin/routes/settings/id.mjs +21 -6
  8. package/dist/admin/routes/settings/id.mjs.map +1 -1
  9. package/dist/admin/src/routes/settings/components/Stages.d.ts +1 -1
  10. package/dist/server/controllers/stages.js +18 -3
  11. package/dist/server/controllers/stages.js.map +1 -1
  12. package/dist/server/controllers/stages.mjs +18 -3
  13. package/dist/server/controllers/stages.mjs.map +1 -1
  14. package/dist/server/controllers/workflows.js +15 -8
  15. package/dist/server/controllers/workflows.js.map +1 -1
  16. package/dist/server/controllers/workflows.mjs +16 -9
  17. package/dist/server/controllers/workflows.mjs.map +1 -1
  18. package/dist/server/migrations/setup-stage-transfer-to-roles.js +70 -0
  19. package/dist/server/migrations/setup-stage-transfer-to-roles.js.map +1 -0
  20. package/dist/server/migrations/setup-stage-transfer-to-roles.mjs +68 -0
  21. package/dist/server/migrations/setup-stage-transfer-to-roles.mjs.map +1 -0
  22. package/dist/server/register.js +2 -1
  23. package/dist/server/register.js.map +1 -1
  24. package/dist/server/register.mjs +2 -1
  25. package/dist/server/register.mjs.map +1 -1
  26. package/dist/server/services/stage-permissions.js +72 -3
  27. package/dist/server/services/stage-permissions.js.map +1 -1
  28. package/dist/server/services/stage-permissions.mjs +73 -4
  29. package/dist/server/services/stage-permissions.mjs.map +1 -1
  30. package/dist/server/services/stages.js +72 -39
  31. package/dist/server/services/stages.js.map +1 -1
  32. package/dist/server/services/stages.mjs +72 -39
  33. package/dist/server/services/stages.mjs.map +1 -1
  34. package/dist/server/src/controllers/stages.d.ts +1 -1
  35. package/dist/server/src/controllers/stages.d.ts.map +1 -1
  36. package/dist/server/src/controllers/workflows.d.ts.map +1 -1
  37. package/dist/server/src/index.d.ts +35 -4
  38. package/dist/server/src/index.d.ts.map +1 -1
  39. package/dist/server/src/migrations/setup-stage-transfer-to-roles.d.ts +6 -0
  40. package/dist/server/src/migrations/setup-stage-transfer-to-roles.d.ts.map +1 -0
  41. package/dist/server/src/register.d.ts.map +1 -1
  42. package/dist/server/src/services/index.d.ts +35 -4
  43. package/dist/server/src/services/index.d.ts.map +1 -1
  44. package/dist/server/src/services/stage-permissions.d.ts +39 -4
  45. package/dist/server/src/services/stage-permissions.d.ts.map +1 -1
  46. package/dist/server/src/services/stages.d.ts.map +1 -1
  47. package/dist/server/src/validation/review-workflows.d.ts.map +1 -1
  48. package/dist/server/validation/review-workflows.js +20 -10
  49. package/dist/server/validation/review-workflows.js.map +1 -1
  50. package/dist/server/validation/review-workflows.mjs +20 -10
  51. package/dist/server/validation/review-workflows.mjs.map +1 -1
  52. package/dist/shared/contracts/review-workflows.d.ts +4 -2
  53. package/dist/shared/contracts/review-workflows.d.ts.map +1 -1
  54. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"stages.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/stages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;;IA4BjC;;;OAGG;cACa,OAAO;IAevB;;;OAGG;kBACiB,OAAO;IAgB3B;;;;;;;;;;;;OAYG;sBACqB,OAAO;IAiD/B;;;;;;;;OAQG;6BAC4B,OAAO;;AA/GxC,wBA4KE"}
1
+ {"version":3,"file":"stages.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/stages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;;IA4BjC;;;OAGG;cACa,OAAO;IAevB;;;OAGG;kBACiB,OAAO;IAgB3B;;;;;;;;;;;;OAYG;sBACqB,OAAO;IAsD/B;;;;;;;;OAQG;6BAC4B,OAAO;;AApHxC,wBAwLE"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/workflows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;;IAuCjC;;;OAGG;gBACe,OAAO;IAuBzB;;;OAGG;gBACe,OAAO;IAmCzB;;;OAGG;gBACe,OAAO;IAwBzB;;;OAGG;cACa,OAAO;;AAnGzB,wBAwHE"}
1
+ {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/workflows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;;IAuFjC;;;OAGG;gBACe,OAAO;IAuBzB;;;OAGG;gBACe,OAAO;IAmCzB;;;OAGG;gBACe,OAAO;IAwBzB;;;OAGG;cACa,OAAO;;AAnGzB,wBAwHE"}
@@ -149,10 +149,41 @@ declare const _default: {
149
149
  'stage-permissions': ({ strapi }: {
150
150
  strapi: import("@strapi/types/dist/core").Strapi;
151
151
  }) => {
152
- register({ roleId, action, fromStage }: any): Promise<any>;
153
- registerMany(permissions: any): Promise<any>;
154
- unregister(permissions: any): Promise<void>;
155
- can(action: any, fromStage: any): any;
152
+ register({ roleId, action, fromStage, }: {
153
+ roleId: number;
154
+ action: string;
155
+ fromStage: number;
156
+ }): Promise<any>;
157
+ registerMany(permissions: {
158
+ roleId: number;
159
+ action: string;
160
+ fromStage: number;
161
+ }[]): Promise<any>;
162
+ registerTo({ roleId, action, toStage, }: {
163
+ roleId: number;
164
+ action: string;
165
+ toStage: number;
166
+ }): Promise<any>;
167
+ registerManyTo(permissions: {
168
+ roleId: number;
169
+ action: string;
170
+ toStage: number;
171
+ }[]): Promise<any>;
172
+ unregister(permissions: {
173
+ id: number;
174
+ }[]): Promise<void>;
175
+ can(action: string, fromStage: number): any;
176
+ canTransitionToStage(toStageId: number): Promise<boolean>;
177
+ canTransitionToStageWithPermissions(stage: {
178
+ permissions?: {
179
+ actionParameters?: {
180
+ to?: number | undefined;
181
+ } | undefined;
182
+ role?: number | {
183
+ id: number;
184
+ } | undefined;
185
+ }[] | undefined;
186
+ }): boolean;
156
187
  };
157
188
  assignees: ({ strapi }: {
158
189
  strapi: import("@strapi/types/dist/core").Strapi;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,wBAA2B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,wBAA2B"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Migrate review workflow stages to have "to" RBAC permissions for all roles.
3
+ */
4
+ declare function migrateReviewWorkflowStagesTransferToRoles({ oldContentTypes, contentTypes }: any): Promise<void>;
5
+ export default migrateReviewWorkflowStagesTransferToRoles;
6
+ //# sourceMappingURL=setup-stage-transfer-to-roles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-stage-transfer-to-roles.d.ts","sourceRoot":"","sources":["../../../../server/src/migrations/setup-stage-transfer-to-roles.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,iBAAe,0CAA0C,CAAC,EAAE,eAAe,EAAE,YAAY,EAAE,EAAE,GAAG,iBA4E/F;AAED,eAAe,0CAA0C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../server/src/register.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAO,MAAM,eAAe,CAAC;qCAqGb;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE;AAAzD,wBA4BE"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../server/src/register.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAO,MAAM,eAAe,CAAC;qCAsGb;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE;AAAzD,wBA6BE"}
@@ -46,10 +46,41 @@ declare const _default: {
46
46
  'stage-permissions': ({ strapi }: {
47
47
  strapi: import("@strapi/types/dist/core").Strapi;
48
48
  }) => {
49
- register({ roleId, action, fromStage }: any): Promise<any>;
50
- registerMany(permissions: any): Promise<any>;
51
- unregister(permissions: any): Promise<void>;
52
- can(action: any, fromStage: any): any;
49
+ register({ roleId, action, fromStage, }: {
50
+ roleId: number;
51
+ action: string;
52
+ fromStage: number;
53
+ }): Promise<any>;
54
+ registerMany(permissions: {
55
+ roleId: number;
56
+ action: string;
57
+ fromStage: number;
58
+ }[]): Promise<any>;
59
+ registerTo({ roleId, action, toStage, }: {
60
+ roleId: number;
61
+ action: string;
62
+ toStage: number;
63
+ }): Promise<any>;
64
+ registerManyTo(permissions: {
65
+ roleId: number;
66
+ action: string;
67
+ toStage: number;
68
+ }[]): Promise<any>;
69
+ unregister(permissions: {
70
+ id: number;
71
+ }[]): Promise<void>;
72
+ can(action: string, fromStage: number): any;
73
+ canTransitionToStage(toStageId: number): Promise<boolean>;
74
+ canTransitionToStageWithPermissions(stage: {
75
+ permissions?: {
76
+ actionParameters?: {
77
+ to?: number | undefined;
78
+ } | undefined;
79
+ role?: number | {
80
+ id: number;
81
+ } | undefined;
82
+ }[] | undefined;
83
+ }): boolean;
53
84
  };
54
85
  assignees: ({ strapi }: {
55
86
  strapi: import("@strapi/types/dist/core").Strapi;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,wBAUE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,wBAUE"}
@@ -2,10 +2,45 @@ import type { Core } from '@strapi/types';
2
2
  declare const _default: ({ strapi }: {
3
3
  strapi: Core.Strapi;
4
4
  }) => {
5
- register({ roleId, action, fromStage }: any): Promise<any>;
6
- registerMany(permissions: any): Promise<any>;
7
- unregister(permissions: any): Promise<void>;
8
- can(action: any, fromStage: any): any;
5
+ register({ roleId, action, fromStage, }: {
6
+ roleId: number;
7
+ action: string;
8
+ fromStage: number;
9
+ }): Promise<any>;
10
+ registerMany(permissions: {
11
+ roleId: number;
12
+ action: string;
13
+ fromStage: number;
14
+ }[]): Promise<any>;
15
+ registerTo({ roleId, action, toStage, }: {
16
+ roleId: number;
17
+ action: string;
18
+ toStage: number;
19
+ }): Promise<any>;
20
+ registerManyTo(permissions: {
21
+ roleId: number;
22
+ action: string;
23
+ toStage: number;
24
+ }[]): Promise<any>;
25
+ unregister(permissions: {
26
+ id: number;
27
+ }[]): Promise<void>;
28
+ can(action: string, fromStage: number): any;
29
+ canTransitionToStage(toStageId: number): Promise<boolean>;
30
+ /**
31
+ * Check if the current user can transition to a stage using pre-loaded permissions.
32
+ * The stage must already have its permissions populated with roles.
33
+ */
34
+ canTransitionToStageWithPermissions(stage: {
35
+ permissions?: {
36
+ actionParameters?: {
37
+ to?: number;
38
+ };
39
+ role?: {
40
+ id: number;
41
+ } | number;
42
+ }[];
43
+ }): boolean;
9
44
  };
10
45
  export default _default;
11
46
  //# sourceMappingURL=stage-permissions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stage-permissions.d.ts","sourceRoot":"","sources":["../../../../server/src/services/stage-permissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;qCASd;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE;4CAKD,GAAG;8BAgBjB,GAAG;4BAGL,GAAG;gBAIrB,GAAG,aAAa,GAAG;;AA5BnC,wBA+CE"}
1
+ {"version":3,"file":"stage-permissions.d.ts","sourceRoot":"","sources":["../../../../server/src/services/stage-permissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;qCASd;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE;6CAkB5C;QACD,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB;8BAgB+B;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE;6CAOpF;QACD,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB;gCAeiC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE;4BAGzD;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE;gBAIlC,MAAM,aAAa,MAAM;oCAqBC,MAAM;IAqB5C;;;OAGG;+CACwC;QACzC,WAAW,CAAC,EAAE;YAAE,gBAAgB,CAAC,EAAE;gBAAE,EAAE,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,IAAI,CAAC,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,GAAG,MAAM,CAAA;SAAE,EAAE,CAAC;KACxF;;AAvHL,wBA6IE"}
@@ -1 +1 @@
1
- {"version":3,"file":"stages.d.ts","sourceRoot":"","sources":["../../../../server/src/services/stages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;qCAWnB;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE;mCAMhB,GAAG;iBAOrB,MAAM,GAAG,MAAM,iBAAgB,GAAG;2BAOlB,GAAG,eAAc,GAAG;qBA+C1B,GAAG,aAAa,GAAG;kBA8BtB,GAAG;uBAaE,GAAG;mCAQS,GAAG;2BAMlB,GAAG;6BAYM,GAAG,cAAc,GAAG;IAkDnD;;OAEG;iCAEe;QACd,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,SACM,IAAI,WAAW,WACb,GAAG;IAoCd;;;;;;;;;;;;;OAaG;wCACuC,GAAG,8BAA8B,GAAG;IAwC9E;;;;OAIG;2CAC0C,GAAG;;AApSpD,wBA8SE"}
1
+ {"version":3,"file":"stages.d.ts","sourceRoot":"","sources":["../../../../server/src/services/stages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;qCAkBnB;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE;mCAMhB,GAAG;iBAOrB,MAAM,GAAG,MAAM,iBAAgB,GAAG;2BAOlB,GAAG,eAAc,GAAG;qBA2D1B,GAAG,aAAa,GAAG;kBAqEtB,GAAG;uBAaE,GAAG;mCAQS,GAAG;2BAKlB,GAAG;6BAYM,GAAG,cAAc,GAAG;IAkDnD;;OAEG;iCAEe;QACd,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,SACM,IAAI,WAAW,WACb,GAAG;IAoCd;;;;;;;;;;;;;OAaG;wCACuC,GAAG,8BAA8B,GAAG;IAwC9E;;;;OAIG;2CAC0C,GAAG;;AAtVpD,wBAgWE"}
@@ -1 +1 @@
1
- {"version":3,"file":"review-workflows.d.ts","sourceRoot":"","sources":["../../../../server/src/validation/review-workflows.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAqB,MAAM,eAAe,CAAC;AAwFvD,eAAO,MAAM,sBAAsB;;;;;IAAkD,CAAC;AACtF,eAAO,MAAM,2BAA2B,oEAAuD,CAAC;AAChG,eAAO,MAAM,8BAA8B,oEAE1C,CAAC;AACF,eAAO,MAAM,sBAAsB;;;;;IAAkD,CAAC;AACtF,eAAO,MAAM,cAAc,0FAA0C,CAAC;;;;;;;;;;;;;;;;;;AAEtE,wBAME"}
1
+ {"version":3,"file":"review-workflows.d.ts","sourceRoot":"","sources":["../../../../server/src/validation/review-workflows.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAqB,MAAM,eAAe,CAAC;AAgGvD,eAAO,MAAM,sBAAsB;;;;;IAAkD,CAAC;AACtF,eAAO,MAAM,2BAA2B,oEAAuD,CAAC;AAChG,eAAO,MAAM,8BAA8B,oEAE1C,CAAC;AACF,eAAO,MAAM,sBAAsB;;;;;IAAkD,CAAC;AACtF,eAAO,MAAM,cAAc,0FAA0C,CAAC;;;;;;;;;;;;;;;;;;AAEtE,wBAME"}
@@ -4,20 +4,30 @@ var utils = require('@strapi/utils');
4
4
  var reviewWorkflows = require('../utils/review-workflows.js');
5
5
  var workflows = require('../constants/workflows.js');
6
6
 
7
+ const fromPermissionObject = utils.yup.object().shape({
8
+ role: utils.yup.number().integer().min(1).required(),
9
+ action: utils.yup.string().oneOf([
10
+ workflows.STAGE_TRANSITION_UID
11
+ ]).required(),
12
+ actionParameters: utils.yup.object().shape({
13
+ from: utils.yup.number().integer().min(1)
14
+ })
15
+ });
16
+ const toPermissionObject = utils.yup.object().shape({
17
+ role: utils.yup.number().integer().min(1).required(),
18
+ action: utils.yup.string().oneOf([
19
+ workflows.STAGE_TRANSITION_UID
20
+ ]).required(),
21
+ actionParameters: utils.yup.object().shape({
22
+ to: utils.yup.number().integer().min(1)
23
+ })
24
+ });
7
25
  const stageObject = utils.yup.object().shape({
8
26
  id: utils.yup.number().integer().min(1),
9
27
  name: utils.yup.string().max(255).required(),
10
28
  color: utils.yup.string().matches(/^#(?:[0-9a-fA-F]{3}){1,2}$/i),
11
- permissions: utils.yup.array().of(utils.yup.object().shape({
12
- role: utils.yup.number().integer().min(1).required(),
13
- action: utils.yup.string().oneOf([
14
- workflows.STAGE_TRANSITION_UID
15
- ]).required(),
16
- actionParameters: utils.yup.object().shape({
17
- from: utils.yup.number().integer().min(1).required(),
18
- to: utils.yup.number().integer().min(1)
19
- })
20
- }))
29
+ fromPermissions: utils.yup.array().of(fromPermissionObject),
30
+ toPermissions: utils.yup.array().of(toPermissionObject)
21
31
  });
22
32
  const validateUpdateStageOnEntitySchema = utils.yup.object().shape({
23
33
  id: utils.yup.number().integer().min(1).required()
@@ -1 +1 @@
1
- {"version":3,"file":"review-workflows.js","sources":["../../../server/src/validation/review-workflows.ts"],"sourcesContent":["/* eslint-disable func-names */\nimport { yup, validateYupSchema } from '@strapi/utils';\nimport { hasStageAttribute } from '../utils/review-workflows';\nimport { STAGE_TRANSITION_UID } from '../constants/workflows';\n\nconst stageObject = yup.object().shape({\n id: yup.number().integer().min(1),\n name: yup.string().max(255).required(),\n color: yup.string().matches(/^#(?:[0-9a-fA-F]{3}){1,2}$/i), // hex color\n permissions: yup.array().of(\n yup.object().shape({\n role: yup.number().integer().min(1).required(),\n action: yup.string().oneOf([STAGE_TRANSITION_UID]).required(),\n actionParameters: yup.object().shape({\n from: yup.number().integer().min(1).required(),\n to: yup.number().integer().min(1),\n }),\n })\n ),\n});\n\nconst validateUpdateStageOnEntitySchema = yup\n .object()\n .shape({\n id: yup.number().integer().min(1).required(),\n })\n .required();\n\nconst validateContentTypes = yup.array().of(\n yup\n .string()\n .test({\n name: 'content-type-exists',\n message: (value) => `Content type ${value.originalValue} does not exist`,\n test(uid: any) {\n // Warning; we use the strapi global - to avoid that, it would need to refactor how\n // we generate validation function by using a factory with the strapi instance as parameter.\n return !!strapi.getModel(uid);\n },\n })\n .test({\n name: 'content-type-review-workflow-enabled',\n message: (value) =>\n `Content type ${value.originalValue} does not have review workflow enabled`,\n test(uid: any) {\n const model = strapi.getModel(uid);\n\n // It's not a valid content type if it doesn't have the stage attribute\n return hasStageAttribute(model);\n },\n })\n);\n\nconst validateWorkflowCreateSchema = yup.object().shape({\n name: yup.string().max(255).min(1, 'Workflow name can not be empty').required(),\n stages: yup\n .array()\n .of(stageObject)\n // @ts-expect-error - add unique property into the yup namespace typing\n .uniqueProperty('name', 'Stage name must be unique')\n .min(1, 'Can not create a workflow without stages')\n .max(200, 'Can not have more than 200 stages')\n .required('Can not create a workflow without stages'),\n contentTypes: validateContentTypes,\n stageRequiredToPublishName: yup.string().min(1).nullable(),\n});\n\nconst validateWorkflowUpdateSchema = yup.object().shape({\n name: yup.string().max(255).min(1, 'Workflow name can not be empty'),\n stages: yup\n .array()\n .of(stageObject)\n // @ts-expect-error - add unique property into the yup namespace typing\n .uniqueProperty('name', 'Stage name must be unique')\n .min(1, 'Can not update a workflow without stages')\n .max(200, 'Can not have more than 200 stages'),\n contentTypes: validateContentTypes,\n stageRequiredToPublishName: yup.string().min(1).nullable(),\n});\n\nconst validateUpdateAssigneeOnEntitySchema = yup\n .object()\n .shape({\n id: yup.number().integer().min(1).nullable(),\n })\n .required();\n\nconst validateLocaleSchema = yup.string().nullable();\n\nexport const validateWorkflowCreate = validateYupSchema(validateWorkflowCreateSchema);\nexport const validateUpdateStageOnEntity = validateYupSchema(validateUpdateStageOnEntitySchema);\nexport const validateUpdateAssigneeOnEntity = validateYupSchema(\n validateUpdateAssigneeOnEntitySchema\n);\nexport const validateWorkflowUpdate = validateYupSchema(validateWorkflowUpdateSchema);\nexport const validateLocale = validateYupSchema(validateLocaleSchema);\n\nexport default {\n validateWorkflowCreate,\n validateUpdateStageOnEntity,\n validateUpdateAssigneeOnEntity,\n validateWorkflowUpdate,\n validateLocale,\n};\n"],"names":["stageObject","yup","object","shape","id","number","integer","min","name","string","max","required","color","matches","permissions","array","of","role","action","oneOf","STAGE_TRANSITION_UID","actionParameters","from","to","validateUpdateStageOnEntitySchema","validateContentTypes","test","message","value","originalValue","uid","strapi","getModel","model","hasStageAttribute","validateWorkflowCreateSchema","stages","uniqueProperty","contentTypes","stageRequiredToPublishName","nullable","validateWorkflowUpdateSchema","validateUpdateAssigneeOnEntitySchema","validateLocaleSchema","validateWorkflowCreate","validateYupSchema","validateUpdateStageOnEntity","validateUpdateAssigneeOnEntity","validateWorkflowUpdate","validateLocale"],"mappings":"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"}
1
+ {"version":3,"file":"review-workflows.js","sources":["../../../server/src/validation/review-workflows.ts"],"sourcesContent":["/* eslint-disable func-names */\nimport { yup, validateYupSchema } from '@strapi/utils';\nimport { hasStageAttribute } from '../utils/review-workflows';\nimport { STAGE_TRANSITION_UID } from '../constants/workflows';\n\nconst fromPermissionObject = yup.object().shape({\n role: yup.number().integer().min(1).required(),\n action: yup.string().oneOf([STAGE_TRANSITION_UID]).required(),\n actionParameters: yup.object().shape({\n from: yup.number().integer().min(1),\n }),\n});\n\nconst toPermissionObject = yup.object().shape({\n role: yup.number().integer().min(1).required(),\n action: yup.string().oneOf([STAGE_TRANSITION_UID]).required(),\n actionParameters: yup.object().shape({\n to: yup.number().integer().min(1),\n }),\n});\n\nconst stageObject = yup.object().shape({\n id: yup.number().integer().min(1),\n name: yup.string().max(255).required(),\n color: yup.string().matches(/^#(?:[0-9a-fA-F]{3}){1,2}$/i), // hex color\n fromPermissions: yup.array().of(fromPermissionObject),\n toPermissions: yup.array().of(toPermissionObject),\n});\n\nconst validateUpdateStageOnEntitySchema = yup\n .object()\n .shape({\n id: yup.number().integer().min(1).required(),\n })\n .required();\n\nconst validateContentTypes = yup.array().of(\n yup\n .string()\n .test({\n name: 'content-type-exists',\n message: (value) => `Content type ${value.originalValue} does not exist`,\n test(uid: any) {\n // Warning; we use the strapi global - to avoid that, it would need to refactor how\n // we generate validation function by using a factory with the strapi instance as parameter.\n return !!strapi.getModel(uid);\n },\n })\n .test({\n name: 'content-type-review-workflow-enabled',\n message: (value) =>\n `Content type ${value.originalValue} does not have review workflow enabled`,\n test(uid: any) {\n const model = strapi.getModel(uid);\n\n // It's not a valid content type if it doesn't have the stage attribute\n return hasStageAttribute(model);\n },\n })\n);\n\nconst validateWorkflowCreateSchema = yup.object().shape({\n name: yup.string().max(255).min(1, 'Workflow name can not be empty').required(),\n stages: yup\n .array()\n .of(stageObject)\n // @ts-expect-error - add unique property into the yup namespace typing\n .uniqueProperty('name', 'Stage name must be unique')\n .min(1, 'Can not create a workflow without stages')\n .max(200, 'Can not have more than 200 stages')\n .required('Can not create a workflow without stages'),\n contentTypes: validateContentTypes,\n stageRequiredToPublishName: yup.string().min(1).nullable(),\n});\n\nconst validateWorkflowUpdateSchema = yup.object().shape({\n name: yup.string().max(255).min(1, 'Workflow name can not be empty'),\n stages: yup\n .array()\n .of(stageObject)\n // @ts-expect-error - add unique property into the yup namespace typing\n .uniqueProperty('name', 'Stage name must be unique')\n .min(1, 'Can not update a workflow without stages')\n .max(200, 'Can not have more than 200 stages'),\n contentTypes: validateContentTypes,\n stageRequiredToPublishName: yup.string().min(1).nullable(),\n});\n\nconst validateUpdateAssigneeOnEntitySchema = yup\n .object()\n .shape({\n id: yup.number().integer().min(1).nullable(),\n })\n .required();\n\nconst validateLocaleSchema = yup.string().nullable();\n\nexport const validateWorkflowCreate = validateYupSchema(validateWorkflowCreateSchema);\nexport const validateUpdateStageOnEntity = validateYupSchema(validateUpdateStageOnEntitySchema);\nexport const validateUpdateAssigneeOnEntity = validateYupSchema(\n validateUpdateAssigneeOnEntitySchema\n);\nexport const validateWorkflowUpdate = validateYupSchema(validateWorkflowUpdateSchema);\nexport const validateLocale = validateYupSchema(validateLocaleSchema);\n\nexport default {\n validateWorkflowCreate,\n validateUpdateStageOnEntity,\n validateUpdateAssigneeOnEntity,\n validateWorkflowUpdate,\n validateLocale,\n};\n"],"names":["fromPermissionObject","yup","object","shape","role","number","integer","min","required","action","string","oneOf","STAGE_TRANSITION_UID","actionParameters","from","toPermissionObject","to","stageObject","id","name","max","color","matches","fromPermissions","array","of","toPermissions","validateUpdateStageOnEntitySchema","validateContentTypes","test","message","value","originalValue","uid","strapi","getModel","model","hasStageAttribute","validateWorkflowCreateSchema","stages","uniqueProperty","contentTypes","stageRequiredToPublishName","nullable","validateWorkflowUpdateSchema","validateUpdateAssigneeOnEntitySchema","validateLocaleSchema","validateWorkflowCreate","validateYupSchema","validateUpdateStageOnEntity","validateUpdateAssigneeOnEntity","validateWorkflowUpdate","validateLocale"],"mappings":"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"}
@@ -2,20 +2,30 @@ import { yup, validateYupSchema } from '@strapi/utils';
2
2
  import { hasStageAttribute } from '../utils/review-workflows.mjs';
3
3
  import { STAGE_TRANSITION_UID } from '../constants/workflows.mjs';
4
4
 
5
+ const fromPermissionObject = yup.object().shape({
6
+ role: yup.number().integer().min(1).required(),
7
+ action: yup.string().oneOf([
8
+ STAGE_TRANSITION_UID
9
+ ]).required(),
10
+ actionParameters: yup.object().shape({
11
+ from: yup.number().integer().min(1)
12
+ })
13
+ });
14
+ const toPermissionObject = yup.object().shape({
15
+ role: yup.number().integer().min(1).required(),
16
+ action: yup.string().oneOf([
17
+ STAGE_TRANSITION_UID
18
+ ]).required(),
19
+ actionParameters: yup.object().shape({
20
+ to: yup.number().integer().min(1)
21
+ })
22
+ });
5
23
  const stageObject = yup.object().shape({
6
24
  id: yup.number().integer().min(1),
7
25
  name: yup.string().max(255).required(),
8
26
  color: yup.string().matches(/^#(?:[0-9a-fA-F]{3}){1,2}$/i),
9
- permissions: yup.array().of(yup.object().shape({
10
- role: yup.number().integer().min(1).required(),
11
- action: yup.string().oneOf([
12
- STAGE_TRANSITION_UID
13
- ]).required(),
14
- actionParameters: yup.object().shape({
15
- from: yup.number().integer().min(1).required(),
16
- to: yup.number().integer().min(1)
17
- })
18
- }))
27
+ fromPermissions: yup.array().of(fromPermissionObject),
28
+ toPermissions: yup.array().of(toPermissionObject)
19
29
  });
20
30
  const validateUpdateStageOnEntitySchema = yup.object().shape({
21
31
  id: yup.number().integer().min(1).required()
@@ -1 +1 @@
1
- {"version":3,"file":"review-workflows.mjs","sources":["../../../server/src/validation/review-workflows.ts"],"sourcesContent":["/* eslint-disable func-names */\nimport { yup, validateYupSchema } from '@strapi/utils';\nimport { hasStageAttribute } from '../utils/review-workflows';\nimport { STAGE_TRANSITION_UID } from '../constants/workflows';\n\nconst stageObject = yup.object().shape({\n id: yup.number().integer().min(1),\n name: yup.string().max(255).required(),\n color: yup.string().matches(/^#(?:[0-9a-fA-F]{3}){1,2}$/i), // hex color\n permissions: yup.array().of(\n yup.object().shape({\n role: yup.number().integer().min(1).required(),\n action: yup.string().oneOf([STAGE_TRANSITION_UID]).required(),\n actionParameters: yup.object().shape({\n from: yup.number().integer().min(1).required(),\n to: yup.number().integer().min(1),\n }),\n })\n ),\n});\n\nconst validateUpdateStageOnEntitySchema = yup\n .object()\n .shape({\n id: yup.number().integer().min(1).required(),\n })\n .required();\n\nconst validateContentTypes = yup.array().of(\n yup\n .string()\n .test({\n name: 'content-type-exists',\n message: (value) => `Content type ${value.originalValue} does not exist`,\n test(uid: any) {\n // Warning; we use the strapi global - to avoid that, it would need to refactor how\n // we generate validation function by using a factory with the strapi instance as parameter.\n return !!strapi.getModel(uid);\n },\n })\n .test({\n name: 'content-type-review-workflow-enabled',\n message: (value) =>\n `Content type ${value.originalValue} does not have review workflow enabled`,\n test(uid: any) {\n const model = strapi.getModel(uid);\n\n // It's not a valid content type if it doesn't have the stage attribute\n return hasStageAttribute(model);\n },\n })\n);\n\nconst validateWorkflowCreateSchema = yup.object().shape({\n name: yup.string().max(255).min(1, 'Workflow name can not be empty').required(),\n stages: yup\n .array()\n .of(stageObject)\n // @ts-expect-error - add unique property into the yup namespace typing\n .uniqueProperty('name', 'Stage name must be unique')\n .min(1, 'Can not create a workflow without stages')\n .max(200, 'Can not have more than 200 stages')\n .required('Can not create a workflow without stages'),\n contentTypes: validateContentTypes,\n stageRequiredToPublishName: yup.string().min(1).nullable(),\n});\n\nconst validateWorkflowUpdateSchema = yup.object().shape({\n name: yup.string().max(255).min(1, 'Workflow name can not be empty'),\n stages: yup\n .array()\n .of(stageObject)\n // @ts-expect-error - add unique property into the yup namespace typing\n .uniqueProperty('name', 'Stage name must be unique')\n .min(1, 'Can not update a workflow without stages')\n .max(200, 'Can not have more than 200 stages'),\n contentTypes: validateContentTypes,\n stageRequiredToPublishName: yup.string().min(1).nullable(),\n});\n\nconst validateUpdateAssigneeOnEntitySchema = yup\n .object()\n .shape({\n id: yup.number().integer().min(1).nullable(),\n })\n .required();\n\nconst validateLocaleSchema = yup.string().nullable();\n\nexport const validateWorkflowCreate = validateYupSchema(validateWorkflowCreateSchema);\nexport const validateUpdateStageOnEntity = validateYupSchema(validateUpdateStageOnEntitySchema);\nexport const validateUpdateAssigneeOnEntity = validateYupSchema(\n validateUpdateAssigneeOnEntitySchema\n);\nexport const validateWorkflowUpdate = validateYupSchema(validateWorkflowUpdateSchema);\nexport const validateLocale = validateYupSchema(validateLocaleSchema);\n\nexport default {\n validateWorkflowCreate,\n validateUpdateStageOnEntity,\n validateUpdateAssigneeOnEntity,\n validateWorkflowUpdate,\n validateLocale,\n};\n"],"names":["stageObject","yup","object","shape","id","number","integer","min","name","string","max","required","color","matches","permissions","array","of","role","action","oneOf","STAGE_TRANSITION_UID","actionParameters","from","to","validateUpdateStageOnEntitySchema","validateContentTypes","test","message","value","originalValue","uid","strapi","getModel","model","hasStageAttribute","validateWorkflowCreateSchema","stages","uniqueProperty","contentTypes","stageRequiredToPublishName","nullable","validateWorkflowUpdateSchema","validateUpdateAssigneeOnEntitySchema","validateLocaleSchema","validateWorkflowCreate","validateYupSchema","validateUpdateStageOnEntity","validateUpdateAssigneeOnEntity","validateWorkflowUpdate","validateLocale"],"mappings":"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"}
1
+ {"version":3,"file":"review-workflows.mjs","sources":["../../../server/src/validation/review-workflows.ts"],"sourcesContent":["/* eslint-disable func-names */\nimport { yup, validateYupSchema } from '@strapi/utils';\nimport { hasStageAttribute } from '../utils/review-workflows';\nimport { STAGE_TRANSITION_UID } from '../constants/workflows';\n\nconst fromPermissionObject = yup.object().shape({\n role: yup.number().integer().min(1).required(),\n action: yup.string().oneOf([STAGE_TRANSITION_UID]).required(),\n actionParameters: yup.object().shape({\n from: yup.number().integer().min(1),\n }),\n});\n\nconst toPermissionObject = yup.object().shape({\n role: yup.number().integer().min(1).required(),\n action: yup.string().oneOf([STAGE_TRANSITION_UID]).required(),\n actionParameters: yup.object().shape({\n to: yup.number().integer().min(1),\n }),\n});\n\nconst stageObject = yup.object().shape({\n id: yup.number().integer().min(1),\n name: yup.string().max(255).required(),\n color: yup.string().matches(/^#(?:[0-9a-fA-F]{3}){1,2}$/i), // hex color\n fromPermissions: yup.array().of(fromPermissionObject),\n toPermissions: yup.array().of(toPermissionObject),\n});\n\nconst validateUpdateStageOnEntitySchema = yup\n .object()\n .shape({\n id: yup.number().integer().min(1).required(),\n })\n .required();\n\nconst validateContentTypes = yup.array().of(\n yup\n .string()\n .test({\n name: 'content-type-exists',\n message: (value) => `Content type ${value.originalValue} does not exist`,\n test(uid: any) {\n // Warning; we use the strapi global - to avoid that, it would need to refactor how\n // we generate validation function by using a factory with the strapi instance as parameter.\n return !!strapi.getModel(uid);\n },\n })\n .test({\n name: 'content-type-review-workflow-enabled',\n message: (value) =>\n `Content type ${value.originalValue} does not have review workflow enabled`,\n test(uid: any) {\n const model = strapi.getModel(uid);\n\n // It's not a valid content type if it doesn't have the stage attribute\n return hasStageAttribute(model);\n },\n })\n);\n\nconst validateWorkflowCreateSchema = yup.object().shape({\n name: yup.string().max(255).min(1, 'Workflow name can not be empty').required(),\n stages: yup\n .array()\n .of(stageObject)\n // @ts-expect-error - add unique property into the yup namespace typing\n .uniqueProperty('name', 'Stage name must be unique')\n .min(1, 'Can not create a workflow without stages')\n .max(200, 'Can not have more than 200 stages')\n .required('Can not create a workflow without stages'),\n contentTypes: validateContentTypes,\n stageRequiredToPublishName: yup.string().min(1).nullable(),\n});\n\nconst validateWorkflowUpdateSchema = yup.object().shape({\n name: yup.string().max(255).min(1, 'Workflow name can not be empty'),\n stages: yup\n .array()\n .of(stageObject)\n // @ts-expect-error - add unique property into the yup namespace typing\n .uniqueProperty('name', 'Stage name must be unique')\n .min(1, 'Can not update a workflow without stages')\n .max(200, 'Can not have more than 200 stages'),\n contentTypes: validateContentTypes,\n stageRequiredToPublishName: yup.string().min(1).nullable(),\n});\n\nconst validateUpdateAssigneeOnEntitySchema = yup\n .object()\n .shape({\n id: yup.number().integer().min(1).nullable(),\n })\n .required();\n\nconst validateLocaleSchema = yup.string().nullable();\n\nexport const validateWorkflowCreate = validateYupSchema(validateWorkflowCreateSchema);\nexport const validateUpdateStageOnEntity = validateYupSchema(validateUpdateStageOnEntitySchema);\nexport const validateUpdateAssigneeOnEntity = validateYupSchema(\n validateUpdateAssigneeOnEntitySchema\n);\nexport const validateWorkflowUpdate = validateYupSchema(validateWorkflowUpdateSchema);\nexport const validateLocale = validateYupSchema(validateLocaleSchema);\n\nexport default {\n validateWorkflowCreate,\n validateUpdateStageOnEntity,\n validateUpdateAssigneeOnEntity,\n validateWorkflowUpdate,\n validateLocale,\n};\n"],"names":["fromPermissionObject","yup","object","shape","role","number","integer","min","required","action","string","oneOf","STAGE_TRANSITION_UID","actionParameters","from","toPermissionObject","to","stageObject","id","name","max","color","matches","fromPermissions","array","of","toPermissions","validateUpdateStageOnEntitySchema","validateContentTypes","test","message","value","originalValue","uid","strapi","getModel","model","hasStageAttribute","validateWorkflowCreateSchema","stages","uniqueProperty","contentTypes","stageRequiredToPublishName","nullable","validateWorkflowUpdateSchema","validateUpdateAssigneeOnEntitySchema","validateLocaleSchema","validateWorkflowCreate","validateYupSchema","validateUpdateStageOnEntity","validateUpdateAssigneeOnEntity","validateWorkflowUpdate","validateLocale"],"mappings":"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"}
@@ -29,7 +29,8 @@ interface StagePermission extends Omit<Permission, 'createdAt' | 'updatedAt' | '
29
29
  interface Stage extends Entity {
30
30
  color: string;
31
31
  name: string;
32
- permissions?: StagePermission[];
32
+ fromPermissions?: StagePermission[];
33
+ toPermissions?: StagePermission[];
33
34
  }
34
35
  /**
35
36
  * GET /content-manager/<collection-type | single-type>/:model/:id/stages
@@ -75,7 +76,8 @@ declare namespace UpdateStage {
75
76
  interface Stage extends Entity {
76
77
  color: string;
77
78
  name: string;
78
- permissions?: StagePermission[];
79
+ fromPermissions?: StagePermission[];
80
+ toPermissions?: StagePermission[];
79
81
  }
80
82
  interface Workflow extends Entity {
81
83
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"review-workflows.d.ts","sourceRoot":"","sources":["../../../shared/contracts/review-workflows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review-workflows.d.ts","sourceRoot":"","sources":["../../../shared/contracts/review-workflows.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/review-workflows",
3
- "version": "5.41.0",
3
+ "version": "5.42.0",
4
4
  "description": "Review workflows for your content",
5
5
  "homepage": "https://strapi.io",
6
6
  "bugs": {
@@ -64,7 +64,7 @@
64
64
  "@reduxjs/toolkit": "1.9.7",
65
65
  "@strapi/design-system": "2.2.0",
66
66
  "@strapi/icons": "2.2.0",
67
- "@strapi/utils": "5.41.0",
67
+ "@strapi/utils": "5.42.0",
68
68
  "fractional-indexing": "3.2.0",
69
69
  "react-dnd": "16.0.1",
70
70
  "react-dnd-html5-backend": "16.0.1",
@@ -74,9 +74,9 @@
74
74
  "yup": "0.32.9"
75
75
  },
76
76
  "devDependencies": {
77
- "@strapi/admin": "5.41.0",
78
- "@strapi/content-manager": "5.41.0",
79
- "@strapi/types": "5.41.0",
77
+ "@strapi/admin": "5.42.0",
78
+ "@strapi/content-manager": "5.42.0",
79
+ "@strapi/types": "5.42.0",
80
80
  "@testing-library/react": "16.3.0",
81
81
  "msw": "1.3.0",
82
82
  "react": "18.3.1",