在Sitecore中,對於所有沒有管理員權限的用戶(管理員複選框未在創建用戶時單擊),當他們嘗試編輯項目時,他們必須選擇「鎖定和編輯」選項會創建一個新版本,而不是編輯現有版本。有沒有辦法讓非管理員用戶編輯一個項目而不創建新版本? 我希望這是否可以使用用戶角色完成。Sitecore用戶編輯項目創建新版本
回答
這裏是負責在編輯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
設置,但它不僅會禁用新版本功能,還會禁用鎖定功能。
這是Sitecore默認的鎖定行爲。
Sitecore使用項目鎖定來確保兩個不同的用戶不能同時編輯同一項目。如果兩個或更多用戶以某種方式設法同時編輯同一項目,則只有最後點擊保存的用戶所做的更改纔可用。所有其他更改將會丟失。項目鎖定是一種系統,可以鎖定正在編輯的項目,並防止其他用戶編輯此項目,直到完成編輯項目後再次將其解鎖爲止。根據所使用的工具,項目鎖定的工作方式會有所不同。 在頁面編輯器中,您可以在開始編輯項目之前鎖定項目。在內容編輯器中,您必須先鎖定項目,然後才能對其進行編輯。
你可以找到更多有關鎖定Here
也請看看這個設置從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"/>
你知道爲什麼它不適用於管理員嗎?因爲當管理員編輯它時,不會創建新版本。 –
因爲通常管理員不必創建新版本,因爲他們被允許發佈任何內容到網絡。通常,當使用附加到工作流程的模板創建新版本時,這個新版本將被推送到工作流程中,從而實現受控發佈。內容必須經過批准才能以這種方式發佈。 (由管理員/批准者) – Younes
您可以通過在web.config中去修改這個選項關閉這個功能 - >
<setting name="RequireLockBeforeEditing" value="true"/>
瞭解更多關於它here
祝你好運!
- 1. Sitecore - 項目版本彈出
- 2. Sitecore:顯示新創建的bucketed項目
- 3. 如何創建沒有工作流程的sitecore項目版本?
- 4. 創建sitecore項目爲pdf
- 5. 無法使用ADT版本21創建新項目(創建空項目)
- 6. Sitecore項目:創建與項目:添加
- 7. Sitecore用戶無法加載編輯器中的項目
- 8. 編輯Sharepoint列表項目版本
- 9. Sitecore CMS創建新用戶和角色
- 10. 如何在創建/編輯項目時添加用戶標識
- 11. 編輯團隊版本中發佈版本的項目屬性
- 12. 用VoltRb中的特定版本創建一個新項目
- 13. 如何限制Sitecore作者只能編輯他們創建的項目?
- 14. Sitecore使用SPE創建新的模板項目
- 15. Sitecore頁面編輯器 - 「創建新內容」位置
- 16. Sitecore工作箱只顯示項目的最新版本
- 17. 從6.5版本到6.6版本的Sitecore項目轉換
- 18. 如何在sitecore中創建富文本編輯器組件
- 19. 如何創建項目版本
- 20. Sitecore 8.2 Glass Mapper創建項目錯誤
- 21. 從現有模板創建Sitecore項目
- 22. Sitecore創建包含字段[]的項目
- 23. Sitecore創建項目的默認語言
- 24. 如何通過第一個版本創建日期來查詢Sitecore項目?
- 25. 在Sitecore中創建新版本時複製字段
- 26. 哪個版本的RAD編輯器是Sitecore 6的使用?
- 27. 創建一個不編譯該項目的版本
- 28. 以特定語言編程創建sitecore項目
- 29. 創建新用戶編程
- 30. Sitecore - 在OnSavingItem事件上創建一個新項目將Shell重定向到新創建的項目
要麼是移除工作流程(如果您不想要新版本,您可能不需要工作流程) – Trayek