Текущий сценарий (Sitecore 9). Пользователь не может публиковать какой-либо элемент в какой-либо цели публикации, даже в веб-базе данных. Мы сталкиваемся с этой проблемой, когда устанавливаем для Publishing.CheckSecurity значение true в Sitecore.config.
Для элемента нет рабочего процесса, у пользователя есть полный доступ (чтение, запись, удаление, создание) к элементу.
Я покопался в Sitecore.Kernel Dll и нашел разницу
public bool CanPublish(ID itemId, User user, ref string explanation)
{
Assert.ArgumentNotNull(itemId, “itemId”);
Assert.ArgumentNotNull(user, “user”);
Assert.ArgumentNotNull(explanation, “explanation”);
if (!Settings.Publishing.CheckSecurity)
{
return true;
}
if (!this.CanPublishLanguage(itemId, user, ref explanation))
{
return false;
}
Item sourceItem = this.GetSourceItem(itemId);
if (sourceItem == null)
{
return this.CanPublishDeletion(itemId, user, ref explanation);
}
return this.CanPublishUpdate(sourceItem, user, ref explanation);
}
Ранее (Sitecore 8.1) «CanPublishLanguage» там не было. Я предоставил полный доступ к языку, но все же мои элементы пропускаются при публикации. Функция возвращает false.
Если я сделаю этот параметр как false, он будет работать нормально.
Пожалуйста, предложите, если мне не хватает еще каких-либо изменений конфигурации для этого.