Sitecore用户编辑项目创建新版本

Kas*_*ghe 3 sitecore

在Sitecore中,对于没有管理员权限的所有用户(在创建用户时未单击管理员复选框),当他们尝试编辑项目时,必须选择"锁定和编辑"选项,这将创建新版本而不是编辑现有的.有没有办法让非管理员用户编辑项目而不创建新版本?我希望是否可以使用用户角色完成此操作.

Mar*_*lak 6

以下是在编辑Sitecore项目时负责创建新版本的代码:

public Item StartEditing(Item item)
{
  Error.AssertObject((object) item, "item");
  if (!Settings.RequireLockBeforeEditing || Context.User.IsAdministrator)
    return item;
  if (this._context.IsAdministrator || StandardValuesManager.IsStandardValuesHolder(item) || !this.HasWorkflow(item) && !this.HasDefaultWorkflow(item) || !this.IsApproved(item))
    return this.Lock(item);
  Item obj = item.Versions.AddVersion();
  if (obj != null)
    return this.Lock(obj);
  else
    return (Item) null;
}
Run Code Online (Sandbox Code Playgroud)

显然,如果项目处于任何​​工作流程的最终状态,Sitecore会创建新版本,除非用户是管理员.

您可以尝试更改RequireLockBeforeEditing设置,但它不仅会禁用新版本功能,还会禁用锁定功能.

  • 无论是那个还是删除工作流程(如果你不想要一个新版本,你可能不需要工作流程) (3认同)