Я пытаюсь создать роль в Sitecore, которая может публиковать контент, но только в определенных областях сайта. Я добавил к своей роли стандартную роль Sitecore\Client Publishing
, но не вижу, как запретить этой роли публиковать все разделы сайта. Я просмотрел редактор безопасности и средство просмотра доступа, но установка доступа для записи разделов, по-видимому, влияет только на возможность редактирования этих разделов и не влияет на возможность публикации в этих разделах.
Sitecore позволяет роли публиковать контент только в определенных областях
Ответы (3)
Однажды у меня была аналогичная ситуация, и я создал роли для каждого раздела, которые читали и писали только в этот раздел и больше нигде (скажем, «редактор раздела 1»), и еще одну роль, которая имела разрешение на публикацию только для этого раздела (скажем, «издатель секция 1'). Затем добавлена роль «раздел редактора 1» к роли «раздел издателя 1», которая дает вам роль для публикации только определенного раздела. Вам не нужно несколько рабочих процессов, один и тот же рабочий процесс с несколькими ролями также может достичь этой цели.
Рабочий процесс является типичным способом, которым это обрабатывается. Предоставление ролям доступа для утверждения (это можно назвать «публикацией») содержимого определенных разделов дерева содержимого будет лучшим способом достижения того, что вы описываете. Объедините это с действием автоматической публикации, чтобы сделать его более удобным для пользователя.
Одна вещь, о которой следует помнить, используя этот метод, — это элементы, на которые есть ссылки (например, изображения из медиатеки, которые может использовать контент). Взгляните на модуль Publishing Spider в общей исходной библиотеке http://trac.sitecore.net/PublishingSpider.
РЕДАКТИРОВАТЬ: обновить
Недавно я обнаружил этот параметр в web.config: «Publishing.CheckSecurity». Если установлено значение true, этот параметр будет публиковать элементы только в том случае, если пользователь прочитал и записал элемент, и будет удалять элементы из веб-базы данных только в том случае, если у пользователя есть разрешения на удаление.
Ответ на этот вопрос — установить для параметра Publishing.CheckSecurity значение true.
Вам нужно найти этот код внутри сети
<!-- PUBLISHING SECURITY
Check security rights when publishing?
When CheckSecurity=true, Read rights are required for all source items. When it is
determined that an item should be updated or created in the target database,
Write right is required on the source item. If it is determined that the item
should be deleted from target database, Delete right is required on the target item.
In summary, only the Read, Write and Delete rights are used. All other rights are ignored.
Default value: false
-->
<setting name="Publishing.CheckSecurity" value="false" />
Установите value="true"
Но опять же, вы должны жестко управлять безопасностью и правильно назначать роль пользователя. Не удалось сделать так что вы столкнетесь с ошибками публикации.
Надеюсь, это поможет