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

Is it possible to restrict part of an Ektron smart form to a specific user group?

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

示例:

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

如果有帮助,我正在使用 Ektron 9.00 SP3。

据我所知,您要么可以编辑内容块,要么不能;没有办法在每个智能表单字段的基础上细分权限。

您可以做的是将“受限”字段分组到它们自己的智能表单中,然后通过内容资源选择器字段引用它。

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

/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,在向您显示自定义编辑屏幕之前进行检查以确保您已登录并且是特定组的成员。以下代码将检查当前用户是否是管理员组的成员;您可以更换不同的组 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 页面实现,也可以作为小部件实现并放置在用户工作区的智能桌面选项卡上。无论哪种方式,你都有很多选择来获得你想要的东西,只是没有“开箱即用”。