2015-09-04 2 views
0

У нас есть три состояния в черновом проекте, редакции и финале.Автор содержания должен иметь возможность удалять страницы в черновом состоянии

Авторы содержания при сохранении объекта отправляются в проектное состояние, и как только они его отправляют, он переходит в редакционное состояние, и издатель может его одобрить или отклонить.

У нас есть контент Авторы, которые не должны удалять страницы (для этого я удалил доступ для удаления для дома и всех страниц под ним) на сайте, но должен иметь возможность удалять страницы в состоянии проекта. Может ли это быть достигнуто?

Я чувствую, что, поскольку я удалял доступ для удаления для дома и всех страниц под ним, автор также не может удалить свою страницу в проекте.

ответ

1

варианты An, чтобы сделать рабочий процесс Delete, с действием, чтобы сделать удаления (я думаю, что вам нужно отключить систему безопасности или пользовательский переключатель, чтобы сделать это.

Но как насчет, если автор редактировать уже существующий вещь, может быть, вам нужно стереть версию вместо пункта.

using Sitecore.Data.Items; 
using Sitecore.Workflows.Simple; 

namespace Mirabeau.Sitecore.Workflow.Action 
{ 
    public class DeleteItemAction 
    { 
     public DeleteItemAction() 
     { 
     } 

     public void Process(WorkflowPipelineArgs args) 
     { 
      Item item = args.DataItem; 
      //example it is not realy save to have this code, every one can delete now. replace or make up with own check 
      using (new Sitecore.SecurityModel.SecurityDisabler()) 
      { 
       item.Recycle(); 
      } 
     } 
    } 
} 

Используйте/Sitecore/шаблоны/Система/Workflow/Действие ниже Удалить Workflow/Command в разделе Данные
«Тип строки» установите Mirabeau.Sitecore.Workflow.Action, YourDLL

См. Действие «Автоматическое опубликование» в рабочем процессе образца.

Другой вариант - создать обычай или изменить команду «Удалить». Что-то вроде Create a Command with dialoge, а не с помощью Delete, где вы выполняете свои проверки прав.

Смежные вопросы