【发布时间】:2016-02-19 00:23:57
【问题描述】:
我已经向 Kentico devnet 和 Kentico 支持人员提出了这个问题,但尚未收到解决方案。我希望更广泛的 SO 社区能够提出一些建议。
作为参考,这里是 devnet 线程:http://devnet.kentico.com/questions/content-staging-how-can-i-stage-role-changes-but-ignore-user-changes
总而言之,我正在使用 Kentico 构建一个大型多站点 Web 平台。暂存模块配置为通过从开发到 UAT 再到生产的线性环境链部署 Kentico 对象更改。这些环境中的每一个自然都有一组不同的用户。因此,我从暂存过程中排除了用户和用户角色关系,如下所示:
public class KingspanUserEvents : CMSLoaderAttribute
{
public override void Init()
{
UserInfo.TYPEINFO.LogSynchronization = CMS.DataEngine.SynchronizationTypeEnum.None;
UserRoleInfo.TYPEINFO.LogSynchronization = CMS.DataEngine.SynchronizationTypeEnum.None;
}
}
但是,我发现当更改的角色被记录为暂存任务时,部分序列化的角色数据是其用户关联。请记住,这些用户将是仅存在于源环境中的用户。
这样的效果是,当环境同步时,角色会在目标上更新,并且所有用户都会从角色中删除。
Kentico 支持人员说“我们已经意识到这一点,并且它在未来的改进列表中。”。但是,对我来说,这是具有企业抱负的 CMS 的根本缺陷。未能在应用程序架构(角色)和实时数据(用户)之间保持分离意味着我无法为应用程序的核心部分创建可靠的部署。
所以我的问题是,有没有人找到解决这个问题的方法?我想知道是否有可能挂钩StagingEvents.ProcessTask.Before 事件处理程序以某种方式防止用户被删除。
【问题讨论】: