Разрешения панели быстрого действия рабочего процесса Sitecore - PullRequest
0 голосов
/ 24 января 2012

У меня есть один рабочий процесс и два пользователя с правами на редактирование и публикацию. Когда пользователь1 редактирует элемент, он попадает в рабочий процесс и появляется в рабочем ящике пользователя 1.

Элемент не отображается в рабочем ящике пользователя user2, но на панели быстрых действий рядом с элементом отображается состояние рабочего процесса, и пользователь user2 может утвердить (запустить доступные команды в этом состоянии), даже если элемент заблокирован пользователем user1.

Кажется, что рабочее окно работает должным образом, отображаются только элементы, которые пользователь редактирует (в рабочем процессе) Но панель быстрого действия позволяет любому пользователю запускать команды, доступные в состоянии, в котором находится элемент, даже если элемент заблокирован кем-то другим.

Оба пользователя принадлежат к одной роли, Автор.

Есть предложения, чтобы обойти эту проблему?

Спасибо

T * 1013

1 Ответ

0 голосов
/ 24 января 2012

Функциональность этого значка можно изменить, создав подкласс Sitecore.Shell.Applications.ContentEditor.Gutters.WorkflowState:

public class SecureWorkflowGutterIcon : Sitecore.Shell.Applications.ContentEditor.Gutters.WorkflowState
{
    protected override Sitecore.Shell.Applications.ContentEditor.Gutters.GutterIconDescriptor GetIconDescriptor(Sitecore.Data.Items.Item item)
    {
        if (Sitecore.Context.Item.Locking.IsLocked() == false || 
            Sitecore.Context.Item.Locking.GetOwner() == Sitecore.Context.GetUserName())
        {
            return base.GetIconDescriptor(item);
        }
        return null;
    }
  }

. При этом значки рабочего процесса будут отображаться, если они не заблокированы или не заблокированы текущимuser.

Затем перейдите в базовую базу данных и измените элемент / sitecore / content / Applications / Content Editor / Gutters / WorkflowState, поле Type, чтобы указать новый класс: YourNamspace.YourClass, YourAssembly.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...