Kentico用户和角色管理

问题描述

我正在运行Kentico11。我有一个站点的一部分,需要用户登录才能阅读和下载一些隐藏的内容

这些用户存储在配置->用户表中。我为这些用户分配了一个自定义角色,因此他们可以登录和查看内容并下载文件。我们有一个与Kentico集成的外部(CRM)系统。此CRM根据年度培训记录自动执行用户帐户创建和角色分配。因此,不会手动创建用户帐户。 CRM管理创建和停用。这正按预期与1000名用户一起使用。

业务需求已更改,现在需要两个访问级别。将需要创建第二个角色。第一层将允许对内容的基本访问。新的第二层(附加角色)将允许访问文件下载。

第一层将继续由CRM中的第三方集成(帐户和第一角色分配)进行管理。第二层将必须手动控制。有人必须登录到Kentico,配置->用户搜索用户添加第二个角色。

为避免给程序员带来负担,我需要允许我的一些非技术团队(客户支持,产品管理)能够管理用户

这些非技术人员没有Kentico CMS帐户。我不想让他们成为管理员,并给他们“一切的钥匙”。

我的问题特定于配置->权限-我可以给我的非技术团队以“ CMS基本用户”的读取权限,并管理“承包商”的用户角色(以及我的自定义角色1st),并希望他们会能够登录到Kentico,导航到“用户”并维护我的承包商。

这有望使他们能够查看我的承包商,并将其添加到新的第二个角色“承包商下载”中。以bob.smith@someemail.com为例。鲍勃(Bob)是承包商,CRM工具将他添加到“用户表”(Users Table)中,角色为“身份验证”,“所有人”和“承包商”。鲍勃完成了一些培训,现在需要承包商下载角色。

在Kentico中是否合适的最佳实践是为我的非技术人员提供CMS基本用户角色和承包商角色,以便他们可以管理我们的承包商?此配置有风险吗?他们将能够管理其他角色吗?我不希望他们能够编辑内容管理,电子商务或任何其他配置。

解决方法

很难授予权限来管理一个角色,而不能授予另一个角色。通常就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);