В Sitecore, как я могу скрыть определенные состояния в рабочем окне пользователя? - PullRequest
0 голосов
/ 27 октября 2011

Допустим, у меня есть рабочий процесс в Sitecore, который имеет следующие состояния:

  • Черновик
  • Проверка со стороны руководства
  • Проверка со стороны ИТ
  • Проверка со стороны корпорации
  • Одобрено

Я хочу, чтобы пользователь в ИТ-группе мог видеть только те элементы, которые находятся в состоянии «Проверка со стороны ИТ», когда они переходят в свой рабочий ящик.Прямо сейчас я делаю это, отказывая в разрешении на чтение всем остальным штатам.Это отлично работает.ИТ-пользователь будет видеть только те элементы, которые находятся в своем состоянии.

Однако это имеет интересный побочный эффект.Поскольку у ИТ-пользователя нет доступа на чтение к другим состояниям, когда он просматривает историю для этого элемента, он говорит следующее:

Перемещено из?к?27.10.11 Переехал из?Обзор по IT на 10/27/11

Похоже, что пользователь не может видеть имена других состояний, потому что у него нет разрешений на чтение.Это ожидаемое поведение?Есть ли другой способ не допускать состояний в рабочую область пользователя?

1 Ответ

1 голос
/ 28 октября 2011

Что вы можете попробовать сделать, так это переопределить реализацию Sitecore.Shell.Applications.Workbox.WorkboxHistoryXmlControl.

  1. Копировать WorkboxHistory.xml из \sitecore\shell\Applications\Workbox в \sitecore\shell\override
  2. Создайте класс, унаследованный от Sitecore.Shell.Applications.Workbox.WorkboxHistoryXmlControl, и переопределите OnLoad, включив его в блокировщик безопасности:

    protected override void OnLoad(EventArgs e) { using(new SecurityDisabler()) { base.OnLoad(e); }}

  3. Изменить ссылку на новую реализацию в \sitecore\shell\override\WorkboxHistory.xml:

    ...inherits="Custom.Workbox.WorkboxHistoryXmlControl,Custom">

Я не проверял его, но он должен работать.

...