Можно ли ограничить часть смарт-формы Ektron определенной группой пользователей?

Можно ли ограничить часть смарта только определенной группой пользователей, и если пользователь, пытающийся редактировать содержимое смарт-формы, не принадлежит к этой группе, то пользователь не может изменить эту часть содержимого?

Пример:

Допустим, у меня есть смарт-форма Employee с полями для EmployeeBio, EmployeeHireDate и EmployeeDept. Можно ли разрешить группе пользователей общего автора редактировать поле EmployeeBio, но ограничить поля EmployeeDept и EmployeeHireDate только группой пользователей HRAdmin?

Если это поможет, я использую Ektron 9.00 SP3.


person techdave3349    schedule 14.05.2015    source источник


Ответы (1)


Насколько я знаю, вы либо можете редактировать блок контента, либо нет; нет способа разделить разрешения для каждого поля смарт-формы.

Что вы можете сделать, так это сгруппировать поля с ограниченным доступом в их собственную смарт-форму, а затем ссылаться на нее через поле селектора ресурсов контента.

Таким образом, ваша смарт-форма Employee может выглядеть так:

/root/txtName  (not in your example, I know...)
/root/rtfBio
/root/cresHRID

Примечание: здесь я использую венгерскую нотацию для имен полей. txt – поле обычного текста, rtf – поле форматированного текста (html), а cres – селектор ресурсов контента.

Тогда у вас может быть вторая смарт-форма... назовем ее EmployeeHR, и она будет иметь следующую структуру:

/root/hireDate
/root/txtDepartment

Теоретически это сработает. Однако я должен сказать, что мне очень не нравится разбивать этот конкретный тип данных таким образом. Во-первых, отдел считает, что он будет лучше функционировать как таксономия, к которой вы можете добавить блок контента. Во-вторых, кажется, что этот тип данных лучше обслуживать, размещая их за пределами ektron, а затем используя DxH (Digital Experience Hub) для передачи данных в Ektron. Таким образом, внешняя система могла бы обрабатывать разрешения на более детальном уровне, и вы по-прежнему имели бы доступ к данным в Ektron для использования в других местах на сайте.

ОБНОВИТЬ

Пока я размышляю над этим вопросом, мне приходит в голову еще один вариант. Вы можете написать страницу ASPX или UserControl, которая проверяет, вошли ли вы в систему и являетесь ли вы членом определенной группы, прежде чем представить вам настраиваемый экран редактирования. Следующий код проверит, является ли текущий пользователь членом группы администраторов; вы можете заменить другой идентификатор группы в соответствии с вашими потребностями:

// Not sure off hand which of these using statements provides access to EkConstants...
using Ektron.Cms;
using Ektron.Cms.Common;
using Ektron.Cms.Content;

var userGroupApi = new Ektron.Cms.Framework.User.UserGroupManager();
var isInGroup = userGroupApi.IsUserInGroup(currentUserId, EkConstants.g_AdminGroup);

Это может быть реализовано в виде страницы ASPX на вашем сайте или в виде виджета и размещено на вкладке пользователя Smart Desktop в рабочей области. В любом случае, у вас есть много вариантов получить то, что вы хотите, просто ничего из коробки.

person Brian Oliver    schedule 14.05.2015
comment
Я полагал, что сделать это в рабочей области невозможно. Я действительно думал, что если клиент действительно этого хочет, разделение смарт-формы будет возможно, но мне бы этого тоже не хотелось. Хотя то, что я предоставил, было всего лишь примером, я не особо изучал DxH, и я должен рассмотреть это позже. Наконец, это интересная идея для создания страницы aspx или элемента управления для пользовательского редактирования. Спасибо за ответ; Я отметил это как ответ, поскольку вы предоставили возможное решение указанной проблемы. - person techdave3349; 14.05.2015