我正在运行Kentico11。我有一个站点的一部分,需要用户登录才能阅读和下载一些隐藏的内容。
这些用户存储在配置->用户表中。我为这些用户分配了一个自定义角色,因此他们可以登录和查看内容并下载文件。我们有一个与Kentico集成的外部(CRM)系统。此CRM根据年度培训记录自动执行用户帐户创建和角色分配。因此,不会手动创建用户帐户。 CRM管理创建和停用。这正按预期与1000名用户一起使用。
业务需求已更改,现在需要两个访问级别。将需要创建第二个角色。第一层将允许对内容的基本访问。新的第二层(附加角色)将允许访问文件下载。
第一层将继续由CRM中的第三方集成(帐户和第一角色分配)进行管理。第二层将必须手动控制。有人必须登录到Kentico,配置->用户。搜索用户并添加第二个角色。
为避免给程序员带来负担,我需要允许我的一些非技术团队(客户支持,产品管理)能够管理用户。
这些非技术人员没有Kentico CMS帐户。我不想让他们成为管理员,并给他们“一切的钥匙”。
我的问题特定于配置->权限-我可以给我的非技术团队以“ CMS基本用户”的读取权限,并管理“承包商”的用户角色(以及我的自定义角色1st),并希望他们会能够登录到Kentico,导航到“用户”并维护我的承包商。
这有望使他们能够查看我的承包商,并将其添加到新的第二个角色“承包商下载”中。以bob.smith@someemail.com为例。鲍勃(Bob)是承包商,CRM工具将他添加到“用户表”(Users Table)中,角色为“身份验证”,“所有人”和“承包商”。鲍勃完成了一些培训,现在需要承包商下载角色。
在Kentico中是否合适的最佳实践是为我的非技术人员提供CMS基本用户角色和承包商角色,以便他们可以管理我们的承包商?此配置有风险吗?他们将能够管理其他角色吗?我不希望他们能够编辑内容管理,电子商务或任何其他配置。
答案 0 :(得分:0)
很难授予权限来管理一个角色,而不能授予另一个角色。通常就UI权限而言,您要么拥有整个操作的权限,要么没有。
虽然使用Kentico的后端用户界面将是有益的,并且给他们一个具有有限管理角色的帐户,我认为会很好,但是我要做的是create a custom User interface并给他们access to that UI,以及所有这些UI元素将是可分配给该角色的可用用户的下拉列表,以及一个使用Kentico API对其进行分配的按钮。
您可以使用“自定义控件” Web部件制作整个内容,然后指向您的ascx,不需要任何特别的东西。
分配角色的API非常简单:
@NgModule({
declarations: [AlxComponent, HomeComponent],
imports: [
AlxRoutingModule,
],
})
export class AlxModule { }
使用以下数据集在下拉列表中列出(UserID,UserFullName):
UserRoleInfoProvider.AddUserToRole(ValidationHelper.GetInteger(ddlAvailableUsers.SelectedValue, 0), RoleInfoProvider.GetRole("ContractorDownload").RoleID);