Sitecore Workflow Security
У меня есть сценарий, в котором я хочу, чтобы роль могла выполнять элемент команд рабочего процесса (утверждать / отклонять), который находится в "состоянии проверки", но они не должны иметь возможность редактировать элемент в этом состоянии.
Я пытался сделать следующее: для "обзора" состояния, для роли.
- Разрешить доступ на запись к роли для элемента контента
- Запретить доступ для записи состояния рабочего процесса
- Разрешить доступ для "Выполнение команды рабочего процесса"
Но это не ведет себя, как ожидалось. Я вижу это сообщение: "Вы не можете редактировать этот элемент, потому что у вас нет прав на запись". (ожидается) . НО, Запретить "запись состояния рабочего процесса" также скрывает кнопки команд
Я вижу странный паттерн - я начинаю с разрешения доступа на запись везде (запись элемента контента и запись состояния рабочего процесса) -
- Переместите элемент в рабочий процесс, перейдите к этапу просмотра (теперь есть обе кнопки и разрешения на редактирование) .
- Теперь я возвращаюсь в редактор безопасности и "запрещаю запись состояния рабочего процесса" для роли, для состояния проверки.
- Я обновляю элемент контента, теперь я вижу кнопки команд И другое сообщение "Вы не можете редактировать этот элемент, потому что он находится в состоянии рабочего процесса, к которому у вас нет прав на запись".
Этот странный паттерн - это поведение, которое я хочу, однако я не могу воспроизвести его без изменений прав доступа в реальном времени. Пожалуйста помоги.
1 ответ
Sitecore работает так, что вы можете выполнять команды в рабочем процессе, только если у вас есть права на запись для этого конкретного элемента.
Из Справочного документа Workflow (который написан для Sitecore 6, но все еще применим):
Действующие права доступа к элементу могут влиять на поведение приложения Workbox. Пользователь должен иметь доступ на запись к элементу, чтобы увидеть элемент в Рабочей коробке. Обратите внимание, что пользователь может не иметь доступа для записи к элементу, если элемент в данный момент извлечен (заблокирован) другим пользователем.
Последняя часть может быть интересной для вас - хотя я не знаю, возможно ли протолкнуть элемент через рабочий процесс, если он был заблокирован кем-то другим...
Единственный другой вариант, который приходит на ум, это программно установить DisableWebEdit
Свойство на Sitecore контролирует, когда в определенном состоянии рабочего процесса, но это может быть немного.