@strapi/review-workflows 5.0.0-rc.8 → 5.0.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.
- package/dist/_chunks/{Layout-Dx59M7TT.mjs → Layout-BJOxxAeM.mjs} +2 -2
- package/dist/_chunks/{Layout-Dx59M7TT.mjs.map → Layout-BJOxxAeM.mjs.map} +1 -1
- package/dist/_chunks/{Layout-B8FL2x6-.js → Layout-DnEAvmeU.js} +2 -2
- package/dist/_chunks/{Layout-B8FL2x6-.js.map → Layout-DnEAvmeU.js.map} +1 -1
- package/dist/_chunks/{_id-AtadE_bb.mjs → _id-6LK95-rZ.mjs} +10 -10
- package/dist/_chunks/_id-6LK95-rZ.mjs.map +1 -0
- package/dist/_chunks/{_id-C-SYBc57.js → _id-DSDzUpwX.js} +10 -10
- package/dist/_chunks/_id-DSDzUpwX.js.map +1 -0
- package/dist/_chunks/{index-CI4KFjfU.js → index-6FZL88pd.js} +9 -29
- package/dist/_chunks/index-6FZL88pd.js.map +1 -0
- package/dist/_chunks/{index-Dj2vG7H2.js → index-DZSLya4b.js} +25 -19
- package/dist/_chunks/index-DZSLya4b.js.map +1 -0
- package/dist/_chunks/{index-0pB4f3ex.mjs → index-Df1alkCk.mjs} +11 -31
- package/dist/_chunks/index-Df1alkCk.mjs.map +1 -0
- package/dist/_chunks/{index-CtpGMTO2.mjs → index-lJqpw8bs.mjs} +25 -19
- package/dist/_chunks/index-lJqpw8bs.mjs.map +1 -0
- package/dist/_chunks/{router-Co81pRA9.js → router-CZqe-02r.js} +3 -3
- package/dist/_chunks/{router-Co81pRA9.js.map → router-CZqe-02r.js.map} +1 -1
- package/dist/_chunks/{router-C6NXX9-N.mjs → router-DeSH-NeW.mjs} +3 -3
- package/dist/_chunks/{router-C6NXX9-N.mjs.map → router-DeSH-NeW.mjs.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/server/index.js +35 -20
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +35 -20
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/controllers/assignees.d.ts.map +1 -1
- package/dist/server/src/controllers/stages.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +1 -1
- package/dist/server/src/services/document-service-middleware.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +1 -1
- package/dist/server/src/services/stages.d.ts +2 -7
- package/dist/server/src/services/stages.d.ts.map +1 -1
- package/package.json +9 -9
- package/dist/_chunks/_id-AtadE_bb.mjs.map +0 -1
- package/dist/_chunks/_id-C-SYBc57.js.map +0 -1
- package/dist/_chunks/index-0pB4f3ex.mjs.map +0 -1
- package/dist/_chunks/index-CI4KFjfU.js.map +0 -1
- package/dist/_chunks/index-CtpGMTO2.mjs.map +0 -1
- package/dist/_chunks/index-Dj2vG7H2.js.map +0 -1
- package/strapi-server.js +0 -3
package/dist/server/index.mjs
CHANGED
|
@@ -6900,7 +6900,7 @@ const reviewWorkflows = {
|
|
|
6900
6900
|
{
|
|
6901
6901
|
name: "admin::hasPermissions",
|
|
6902
6902
|
config: {
|
|
6903
|
-
actions: ["admin::users.read"
|
|
6903
|
+
actions: ["admin::users.read"]
|
|
6904
6904
|
}
|
|
6905
6905
|
}
|
|
6906
6906
|
]
|
|
@@ -7321,23 +7321,17 @@ const stages$1 = ({ strapi: strapi2 }) => {
|
|
|
7321
7321
|
},
|
|
7322
7322
|
/**
|
|
7323
7323
|
* Update the stage of an entity
|
|
7324
|
-
*
|
|
7325
|
-
* @param {object} entityInfo
|
|
7326
|
-
* @param {number} entityInfo.id - Entity id
|
|
7327
|
-
* @param {string} entityInfo.modelUID - the content-type of the entity
|
|
7328
|
-
* @param {number} stageId - The id of the stage to assign to the entity
|
|
7329
7324
|
*/
|
|
7330
|
-
async updateEntity(
|
|
7325
|
+
async updateEntity(documentId, locale, model, stageId) {
|
|
7331
7326
|
const stage = await this.findById(stageId);
|
|
7332
7327
|
await workflowValidator.validateWorkflowCount();
|
|
7333
7328
|
if (!stage) {
|
|
7334
7329
|
throw new ApplicationError$2(`Selected stage does not exist`);
|
|
7335
7330
|
}
|
|
7336
|
-
const entity = await strapi2.
|
|
7337
|
-
|
|
7338
|
-
|
|
7339
|
-
},
|
|
7340
|
-
data: { [ENTITY_STAGE_ATTRIBUTE]: stageId },
|
|
7331
|
+
const entity = await strapi2.documents(model).update({
|
|
7332
|
+
documentId,
|
|
7333
|
+
locale,
|
|
7334
|
+
data: { [ENTITY_STAGE_ATTRIBUTE]: stage },
|
|
7341
7335
|
populate: [ENTITY_STAGE_ATTRIBUTE]
|
|
7342
7336
|
});
|
|
7343
7337
|
metrics.sendDidChangeEntryStage();
|
|
@@ -7810,6 +7804,7 @@ const handleStageOnUpdate = async (ctx, next) => {
|
|
|
7810
7804
|
strapi.eventHub.emit(WORKFLOW_UPDATE_STAGE, {
|
|
7811
7805
|
model: model.modelName,
|
|
7812
7806
|
uid: model.uid,
|
|
7807
|
+
// TODO v6: Rename to "entry", which is what is used for regular CRUD updates
|
|
7813
7808
|
entity: {
|
|
7814
7809
|
// @ts-expect-error
|
|
7815
7810
|
id: result?.id,
|
|
@@ -8095,7 +8090,12 @@ const stages = {
|
|
|
8095
8090
|
);
|
|
8096
8091
|
const workflow2 = await workflowService.assertContentTypeBelongsToWorkflow(modelUID);
|
|
8097
8092
|
workflowService.assertStageBelongsToWorkflow(stageId, workflow2);
|
|
8098
|
-
const updatedEntity = await stagesService.updateEntity(
|
|
8093
|
+
const updatedEntity = await stagesService.updateEntity(
|
|
8094
|
+
entity.documentId,
|
|
8095
|
+
entity.locale,
|
|
8096
|
+
modelUID,
|
|
8097
|
+
stageId
|
|
8098
|
+
);
|
|
8099
8099
|
ctx.body = { data: await sanitizeOutput(updatedEntity) };
|
|
8100
8100
|
},
|
|
8101
8101
|
/**
|
|
@@ -8115,10 +8115,9 @@ const stages = {
|
|
|
8115
8115
|
if (strapi.plugin("content-manager").service("permission-checker").create({ userAbility: ctx.state.userAbility, model: modelUID }).cannot.read()) {
|
|
8116
8116
|
return ctx.forbidden();
|
|
8117
8117
|
}
|
|
8118
|
-
const locale = await validateLocale(query?.locale);
|
|
8118
|
+
const locale = await validateLocale(query?.locale) ?? void 0;
|
|
8119
8119
|
const entity = await strapi.documents(modelUID).findOne({
|
|
8120
8120
|
documentId,
|
|
8121
|
-
// @ts-expect-error - locale should be also null in the doc service types
|
|
8122
8121
|
locale,
|
|
8123
8122
|
populate: [ENTITY_STAGE_ATTRIBUTE]
|
|
8124
8123
|
});
|
|
@@ -8127,12 +8126,13 @@ const stages = {
|
|
|
8127
8126
|
}
|
|
8128
8127
|
const entityStageId = entity[ENTITY_STAGE_ATTRIBUTE]?.id;
|
|
8129
8128
|
const canTransition = stagePermissions2.can(STAGE_TRANSITION_UID, entityStageId);
|
|
8130
|
-
const [workflowCount,
|
|
8129
|
+
const [workflowCount, workflowResult] = await Promise.all([
|
|
8131
8130
|
workflowService.count(),
|
|
8132
8131
|
workflowService.getAssignedWorkflow(modelUID, {
|
|
8133
8132
|
populate: "stages"
|
|
8134
8133
|
})
|
|
8135
8134
|
]);
|
|
8135
|
+
const workflowStages = workflowResult ? workflowResult.stages : [];
|
|
8136
8136
|
const meta = {
|
|
8137
8137
|
stageCount: workflowStages.length,
|
|
8138
8138
|
workflowCount
|
|
@@ -8168,22 +8168,37 @@ const assignees = {
|
|
|
8168
8168
|
async updateEntity(ctx) {
|
|
8169
8169
|
const assigneeService = getService("assignees");
|
|
8170
8170
|
const workflowService = getService("workflows");
|
|
8171
|
+
const stagePermissions2 = getService("stage-permissions");
|
|
8171
8172
|
const { model_uid: model, id: documentId } = ctx.params;
|
|
8172
|
-
const
|
|
8173
|
+
const locale = await validateLocale(ctx.request.query?.locale) ?? void 0;
|
|
8173
8174
|
const { sanitizeOutput } = strapi.plugin("content-manager").service("permission-checker").create({ userAbility: ctx.state.userAbility, model });
|
|
8175
|
+
const entity = await strapi.documents(model).findOne({
|
|
8176
|
+
documentId,
|
|
8177
|
+
locale,
|
|
8178
|
+
populate: [ENTITY_STAGE_ATTRIBUTE]
|
|
8179
|
+
});
|
|
8180
|
+
if (!entity) {
|
|
8181
|
+
ctx.throw(404, "Entity not found");
|
|
8182
|
+
}
|
|
8183
|
+
const canTransitionStage = stagePermissions2.can(
|
|
8184
|
+
STAGE_TRANSITION_UID,
|
|
8185
|
+
entity[ENTITY_STAGE_ATTRIBUTE]?.id
|
|
8186
|
+
);
|
|
8187
|
+
if (!canTransitionStage) {
|
|
8188
|
+
ctx.throw(403, "Stage transition permission is required");
|
|
8189
|
+
}
|
|
8174
8190
|
const { id: assigneeId } = await validateUpdateAssigneeOnEntity(
|
|
8175
8191
|
ctx.request?.body?.data,
|
|
8176
8192
|
"You should pass a valid id to the body of the put request."
|
|
8177
8193
|
);
|
|
8178
|
-
await validateLocale(locale);
|
|
8179
8194
|
await workflowService.assertContentTypeBelongsToWorkflow(model);
|
|
8180
|
-
const
|
|
8195
|
+
const updatedEntity = await assigneeService.updateEntityAssignee(
|
|
8181
8196
|
documentId,
|
|
8182
8197
|
locale || null,
|
|
8183
8198
|
model,
|
|
8184
8199
|
assigneeId
|
|
8185
8200
|
);
|
|
8186
|
-
ctx.body = { data: await sanitizeOutput(
|
|
8201
|
+
ctx.body = { data: await sanitizeOutput(updatedEntity) };
|
|
8187
8202
|
}
|
|
8188
8203
|
};
|
|
8189
8204
|
const controllers = {
|