在去年,我们发生了一些事件,其中一个用户意外取消发布了"Home"项目(我们网站中的根项目),然后将其发布到我们的"实时"数据库,该数据库将其从网站上删除.
防止重要内容从生产Sitecore网站中取消发布的最佳方法是什么?
您的"简单"安全选项是保护Home项目本身不受编辑,或限制对发布选项的访问.使用标准Sitecore安全性,在主页上禁用特定用户角色的写访问权限,或禁用核心中的发布限制块或按钮的读取访问权限(/ sitecore/content/Applications/Content Editor/Ribbons/Chunks/Publish Restrictions/Change).
如果您真的不需要管理员编辑Home项目以外的任何人,您还可以从配置功能区保护该项目.
如果您只想禁用Home上的发布限制,那可能会更复杂.您最好的方法可能是扩展SetPublishing命令.以下是未经测试的:
Sitecore.Shell.Framework.Commands.SetPublishingExecute(CommandContext)context.Items[0]它是否是您的主页(如果是多站点,则检查GUID或模板ID).如果是这样,中止.如果没有,请致电base.Execute(context).(Sitecore.Context.User.IsAdministrator如果需要,您也可以添加支票.)item:setpublishing在Commands.config中替换命令.Sitecore.Shell.Framework.Commands.SetPublishing根据需要在您最喜欢的反编译器中引用.