Установить уровень безопасности поля для элемента Home в sitecore - PullRequest
2 голосов
/ 13 марта 2012

У меня есть вопрос об установке безопасности для пары полей для элемента Home в sitecore.

У меня есть шаблон, назовем его TaggingTemplate с 7 полями, назовем их - field1, field2, field3... field7.Этот шаблон используется всеми другими шаблонами в моей структуре sitecore.

Элемент Home, который использует шаблон "Home", также наследует "TaggingTemplate".

То, что я хочу сделать, это установить поля- от field1 до field5 только для чтения для всех, кроме администратора для элемента Home.Как я могу это сделать?На домашнем элементе установлено множество параметров безопасности, и любое изменение параметров безопасности для домашнего элемента может повлиять на весь веб-сайт.

Я не смог установить этот параметр безопасности в шаблоне «Домой», так как field1-field5наследуются от TaggingTemplate.Я не мог найти способ сделать это через редактор безопасности.

Ответы [ 2 ]

4 голосов
/ 13 марта 2012

Как упоминает Марк в своем ответе, это невозможно сделать с помощью безопасности Sitecore.Вы можете предотвратить это с помощью плагина конвейера SaveUI, хотя и не самым удобным для пользователя способом.

Используйте инструмент, такой как ILSpy, для проверки конвейерных процессоров в Sitecore.Pipelines.Save.Создайте процессор с методом Process(SaveArgs args).Если Sitecore.Context.User.IsAdministrator, вы можете сделать досрочный возврат.В противном случае проверьте коллекцию args.Items и поля внутри каждого SaveArgs.SaveItem, чтобы определить, является ли это домашним элементом, и было ли отредактировано одно из ваших полей.Если это так, используйте следующую логику, чтобы остановить сохранение и предупредить пользователя:

protected void AbortSave(SaveArgs args)
    {
        if (args.HasSheerUI)
        {
            SheerResponse.Alert("You cannot edit these fields.");
            SheerResponse.SetReturnValue("failed");
        }
        args.AbortPipeline();
    }

Ваш альтернативный вариант - реорганизовать шаблоны для перемещения этих полей в другой элемент, который пользователь не может редактировать.

4 голосов
/ 13 марта 2012

Вы не можете видеть унаследованные поля через шаблон в редакторе безопасности. Таким образом, вы можете использовать Редактор безопасности, чтобы ограничить доступ к определенным полям в TaggingTemplate для всех экземпляров этого шаблона, но вы не можете ограничить доступ, только когда TaggingTemplate наследуется шаблоном Home.

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