Пользователи Sitecore редактируют элемент создает новую версию

В Sitecore для всех пользователей, у которых нет прав администратора (не установлен ли флажок администратора при создании пользователя), когда они пытаются редактировать элемент, им нужно выбрать опцию "Блокировать и редактировать", которая создаст новую версию вместо редактирования существующий. Есть ли способ, которым я могу заставить не администраторов редактировать элемент, не создавая новую версию? Я надеюсь, что это можно сделать с помощью роли пользователя.

3 ответа

Решение

Вот код, отвечающий за создание новых версий при редактировании элементов 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;
}

Очевидно, Sitecore создает новую версию, если элемент находится в конечном состоянии любого рабочего процесса, если пользователь не является администратором.

Вы можете попытаться изменить RequireLockBeforeEditing настройки, но это отключит не только функциональность новой версии, но и функцию блокировки.

Вы можете отключить это, отредактировав эту опцию в de web.config ->

<setting name="RequireLockBeforeEditing" value="true"/>

Подробнее об этом здесь

Удачи!

Это поведение Sitecore по умолчанию для блокировки.

Sitecore использует блокировку элементов, чтобы два разных пользователя не могли редактировать один и тот же элемент одновременно. Если двум или более пользователям каким-либо образом удалось отредактировать один и тот же элемент одновременно, будут доступны только те изменения, которые были внесены пользователем, который щелкнул "Сохранить последним". Все остальные изменения будут потеряны. Блокировка элемента - это система, в которой вы блокируете элемент, который вы редактируете, и не позволяете другим пользователям редактировать этот элемент, пока вы не разблокируете его снова после того, как закончите редактирование элемента. Блокировка элемента работает по-разному в зависимости от инструментов, которые вы используете. В редакторе страниц вы можете заблокировать элемент, прежде чем начать его редактирование. В редакторе содержимого вы должны заблокировать элемент, прежде чем сможете его редактировать.

Вы можете найти больше о блокировке здесь

Пожалуйста, посмотрите на эти настройки из web.config:

     <!--
     REQUIRE LOCK BEFORE EDITING
        If true, the user must have a lock on a document before
        he can edit it, otherwise it is always ready for editing

      -->
     <setting name="RequireLockBeforeEditing" value="true"/>

    <!--
        KEEP LOCK AFTER SAVE FOR ADMIN USERS
        Set this value to true if you want to Administrator users to keep the lock on     an item after saving
        it in the Page Editor.
        Notice: For regular users, the "Keep Lock After Save" item in the core database will determine whether
        to keep the lock or not.
        Default value: false
   -->
    <setting name="KeepLockAfterSaveForAdminUsers" value="false"/>
    <!--
   AUTOMATIC LOCK ON SAVE
        If true, the a lock is automatically taken on an item
        when a user saves the item.
   -->
  <setting name="AutomaticLockOnSave" value="false"/>
    <!--
  AUTOMATIC UNLOCK ON SAVED
        If true, the a saved item is automatically unlocked after
        saving.
    -->
    <setting name="AutomaticUnlockOnSaved" value="false"/>
Другие вопросы по тегам