#workflow #sitecore #sitecore6
#рабочий процесс #sitecore #sitecore6
Вопрос:
Допустим, у меня есть рабочий процесс в Sitecore, который имеет следующие состояния:
- Черновик
- Обзор со стороны руководства
- Обзор ИТ
- Обзор от корпоративного
- Одобрено
Я хочу, чтобы пользователь в ИТ-группе видел только элементы, которые находятся в состоянии «Просмотр ИТ», когда они переходят в свой рабочий ящик. Прямо сейчас я делаю это, отказывая в разрешении на чтение всем другим состояниям. Это работает нормально. ИТ-пользователь будет видеть только элементы, которые находятся в их состоянии.
Однако это имеет интересный побочный эффект. Поскольку ИТ-пользователь не имеет доступа на чтение к другим состояниям, когда он просматривает историю для этого элемента, в нем говорится следующее:
Перемещено из? кому? 27.10.11 перенесено из? для просмотра ИМ 27.10.11
Похоже, что пользователь не может видеть имена других состояний, потому что у него нет прав на чтение. Это ожидаемое поведение? Есть ли какой-либо другой способ сохранить состояния вне рабочего поля пользователя?
Ответ №1:
Что вы можете попробовать сделать, так это переопределить Sitecore.Оболочка.Приложения.Рабочее окно.WorkboxHistoryXmlControl реализация.
- Копировать WorkboxHistory.xml от
sitecoreshellApplicationsWorkbox
доsitecoreshelloverride
-
Создайте класс, унаследованный от
Sitecore.Shell.Applications.Workbox.WorkboxHistoryXmlControl
и переопределитеOnLoad
его, обернув его в средство отключения безопасности:protected override void OnLoad(EventArgs e) { using(new SecurityDisabler()) { base.OnLoad(e); }}
-
Измените ссылку на вашу новую реализацию в
sitecoreshelloverrideWorkboxHistory.xml
:...inherits="Custom.Workbox.WorkboxHistoryXmlControl,Custom">
Я не тестировал его, но он должен работать.