Доколкото знам, или можете да редактирате блок със съдържание, или не; няма начин за подразделяне на разрешенията на базата на поле за смартформа.
Това, което можете да направите, е да групирате ограничените полета в техен собствен интелигентен формуляр и след това да посочите това чрез поле за избор на ресурси за съдържание.
Така че вашият интелигентен формуляр за служител може да изглежда така:
/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