是否可以将Ektron智能表单的一部分限制为特定用户组?

时间:2015-05-14 14:32:36

标签: ektron

是否可以将智能部分限制为仅限某个用户组,如果尝试编辑智能表单内容的用户不属于该组,则用户无法更改该部分内容?

示例:

让我们说我有一个Employee智能表单,其中包含EmployeeBio,EmployeeHireDate和EmployeeDept的字段。是否可以允许一般作者用户组能够编辑EmployeeBio字段,但是将EmployeeDept和EmployeeHireDate字段限制为仅限HRAdmin用户组?

如果有帮助,我使用的是Ektron 9.00 SP3。

1 个答案:

答案 0 :(得分:0)

据我所知,您可以编辑内容块,也可以不编辑内容块。没有办法在每个smartform-field的基础上细分权限。

你可以做的是,对#34;限制"将字段转换为自己的smartform,然后通过内容资源选择器字段引用它。

因此,您的员工智能表单可能如下所示:

/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,在向您显示自定义编辑屏幕之前检查以确保您已登录并成为特定组的成员。以下代码将检查当前用户是否为admin组的成员;您可以换出不同的组ID以满足您的需求:

// 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页面实现,也可以作为小部件实现,并放置在工作区的用户智能桌面选项卡上。无论哪种方式,你都有很多选择来获得你想要的东西,只是没有任何东西"开箱即用"。