仅针对特定用户的 Sitecore 工作流程

Sitecore Workflow Only for Specific User

我有三个用户(A、B 和 C)并为项目设置了工作流程。 工作流程完全符合我的预期。

在这种情况下,我只想为 A 用户设置工作流,其他用户(B 和 C)不会使用任何工作流过程,即使该过程已经分配到内容项中。

因此,用户将遵循 "submit"、"approval" 和 "publish" 等过程。 B、C用户不会用workflow,不需要,改发布即可。

我该怎么做???我想我需要更新安全中的工作流程权限??

您必须编写一些自定义代码才能执行此操作,因为您不能跳过某个项目的工作流程。

相反,您可以编写一些代码来挂钩事件 - 保存时似乎是个不错的选择。你可以查看:

如果项目有工作流程

如果用户具有跳过工作流程的特定角色(用户 b 和 c)

如果工作流处于正确状态

在这些条件下,您可以通过编程将工作流操作到下一个状态或将工作流字段设置为已批准。

此处来自 Cognifide 的一些很棒的示例代码,用于以编程方式操作或更新项目上的工作流

https://www.cognifide.com/blogs/sitecore/changing-workflow-state-of-sitecore-items-programmatically/

这里还有一个示例,其中有人设置了跳过批准操作以将项目工作流推送到最终状态。

How to programmatically approve a content item in Sitecore

我建议您在跳过工作流程时要小心,因为如果高级用户编辑编辑器的内容,内容很容易最终被意外批准。对于一些用户来说,一直按提交和批准可能会很烦人,但这是一个很好的故障保险。

您可以做的另一件事是在草稿状态之后创建自定义工作流操作,以便在用户 b 和 c 在草稿中创建新项目时将工作流更新到最终状态。

你可以做的是使用 AutoSubmitAction 只允许 Power Editor 角色(或用户 B 和 C 分配给的任何角色),这将改变编辑项目的状态每次保存项目时都会进入工作流程的最终状态。此操作应添加到工作流的初始状态下(在 __Save 命令下)。

显然工作流程仍然存在,但用户 B 和 C 不必提交或批准。

不需要编码,但您需要记住,工作流程是一个强大的工具,如果您的高级编辑器不小心,跳过它可能会很危险。