我有三个用户(A,B和C)并为项目设置工作流程。 工作流程完全按照我的预期运作。
在这种情况下,我只想为A用户设置工作流程,而其他用户(B和C)将不会使用任何工作流程,即使该流程已经分配到内容项目中。
因此,用户将按照“提交”,“批准”和“发布”等流程进行操作。 B和C用户不会使用工作流程,他们不是必需的,只需更改和发布。
我该怎么做?我想我需要在安全性中更新工作流权限吗?
答案 0 :(得分:2)
您必须编写一些自定义代码才能执行此操作,因为您无法跳过项目的工作流程。
相反,您可以编写一些代码来挂钩事件 - 保存似乎是一个不错的选择。你可以查一下:
如果该项目具有工作流程
如果用户具有跳过工作流程的特定角色(用户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在草稿中创建新项目时将工作流更新为最终状态。
答案 1 :(得分:1)
您可以使用的AutoSubmitAction
只允许Power Editor
角色(或用户B和C分配给的任何角色),并且会将已编辑项目的状态更改为每次保存项目时的工作流程的最终状态。应在工作流的初始状态下(在__Save
命令下)添加此操作。
显然,工作流程仍然存在,但用户B和C不必提交或批准。
不需要编码,但您需要记住,工作流程是一个功能强大的工具,如果您的电源编辑不小心,跳过它可能会很危险。