我正在寻找一种方法,允许内容编辑者存档某些类型的项目,同时防止他们删除这些相同的项目。
我已在项目中添加了自定义事件处理程序:删除事件。由于归档和删除都会触发此事件,因此我希望向处理程序添加一些代码,以检查用户是否正在删除或归档项目。如果用户正在删除该项目,则删除操作将被取消。
有没有办法实现这个目标?
答案 0 :(得分:1)
1)项目:删除事件无法实现
2)考虑根据角色禁用或删除内容编辑器的 delete 选项。
来自his Blog的John West的详细信息:
...通常,你可以这样做 这通过覆盖命令的QueryState()方法。我认为 您的QueryState将覆盖默认值以调用该默认值。如果 结果是可见/启用但你的逻辑说不应该 是的,然后返回禁用(为了避免一个紧张的用户界面,它更好 禁用隐藏命令)。这有关于自定义访问的更多细节 权利(实际上可能适用于您的情况),但有些细节 关于QueryState: http://www.sitecore.net/learn/blogs/technical-blogs/john-west-sitecore-blog/posts/2013/02/allow-users-to-unlock-items-locked-to-others-in-the-sitecore-aspnet-cms.aspx 除非他们调用相同的命令,否则您可能需要考虑其他命令 触发这些行动的方法,例如从体验内部 编辑器(可能需要覆盖另一个或两个QueryState)并且可能 别处。