В Sitecore как я могу скрыть определенные состояния в рабочем окне пользователя?

#workflow #sitecore #sitecore6

#рабочий процесс #sitecore #sitecore6

Вопрос:

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

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

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

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

Перемещено из? кому? 27.10.11 перенесено из? для просмотра ИМ 27.10.11

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

Ответ №1:

Что вы можете попробовать сделать, так это переопределить Sitecore.Оболочка.Приложения.Рабочее окно.WorkboxHistoryXmlControl реализация.

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

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

  3. Измените ссылку на вашу новую реализацию в sitecoreshelloverrideWorkboxHistory.xml :

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

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