角色管理

在这一小节中,我们将学习角色管理相关的功能。正如我们之前所说,也许上一个小节中介绍的组织管理并非大多数项目所需,但角色管理一定是很多项目中必不可少的部分,尤其是当我们选择了在 FreeAuth 中采用 RBAC(基于角色的访问控制)机制,因此为了最终实现权限的分配,我们必须首先了解如何创建角色和使用角色。通过左侧菜单栏中的 角色管理 进入到其管理界面,在这里我们提供了两种模式,从不同的维度来展示系统中的角色信息。

列表模式

第一种显示模式是列表模式,这个模式下,界面同用户管理界面一样,中央的表格用于展示数据信息。在表格中您可以看到一个叫做 系统管理员 的角色,该角色是搭建系统时由系统自动生成的,也正是您当前正在使用的用户所关联的角色,这份关联也是在最初由系统自动创建的,而这个角色默认包含了一个名为 通配符权限 的权限,该权限覆盖了系统中其他的权限,这就意味着当一个用户关联了 系统管理员 角色,就拥有了系统中所有功能的访问权限。注意:系统管理员 角色是受保护的系统角色,不支持删除和禁用,以防因为误操作造成重要功能的无法访问。

FreeAuth Role Management

除了系统默认角色外,您也可以创建新的角色,点击表格右上角的 创建角色,下图中用于创建角色的表单则会即刻弹出:

FreeAuth Role Management - Create Form

如果您的系统或者产品中并未涉及组织架构的需求,又或者说您已经因此跳过了上一个小节,那么此处,在创建新角色时,您只需要关注 全局可选角色 这个选项。这类角色意味着系统中的任何用户都可以关联该角色。系统原生的 系统管理员 角色就是全局角色的一个很好的例子。您可以把它分配给任何一个已经存在于系统中的用户。

那么,另一个选项 指定组织类型下可选角色 又是什么呢?首先,让我们来回忆一下之前讲到过的概念 组织类型,我们在上一个小节中,为不同的组织类型创建了对应的组织架构,比如上一个小节中 供应商 类型。也就是说,一个组织(无论是企业机构还是部门分支)都需要定义在某个 组织类型 下,然后我们通过添加成员到组织,相当于将用户分配到了不同的 组织类型 下,也就是我们在上一个小节最开始提到的“用户池”概念。当用户通过 组织类型 进行隔离后,我们也支持角色的隔离,也就是当您创建的是 指定组织类型下可选角色 时,该角色只能被归属于同一个 组织类型 的用户所关联。这个功能并非是所有系统所需,还需要您结合具体情况进行使用。

FreeAuth Role Management - Organizational Role

为了更好地理解 指定组织类型下可选角色,让我们来实际操作一下。首先,在创建角色的表单中选中 指定组织类型下可选角色,下方除了角色名称、角色代码和角色描述的输入框以外,还有一个名为 所属组织类型 的选择器,点击后,下拉框中会提供所有组织类型选项。比如,我们选择在上一个小节中创建的 供应商,完成信息填写后保存提交,由此生成的角色则只能被 供应商 下的用户所关联。如下图所示,我们在 供应商 下创建了两个角色,分别是 业务员财务

FreeAuth Role Management - New Role

因此,当你为一个 供应商 下的用户关联角色时,您只可以搜索到全局角色和属于 供应商 的角色进行关联,其他组织类型下的角色将不会呈现。具体如何关联用户与角色,我们会在本小节的最后一个部分进行详细的介绍。

FreeAuth User Details Page - Set Roles

总之,我们可以把组织类型看作是一个大的容器,包含了属于它的用户、组织架构以及一些特定的角色。注意:一个用户或者一个组织或者一个角色,都只能关联一个组织类型。

再次强调,如果您的系统或者产品并不包含涉及组织架构的功能,您只需要关心 全局可选角色

同理,如果您需要对某个角色的数据进行操作,您既可以通过该角色在表格里最后一列的行操作来完成,也可以通过点击其名称列,进入其详情页来完成相应的操作。

FreeAuth Role Management - Row ActionsFreeAuth Role Details Page - Actions

架构模式

为了能更好地展示某个组织类型下用户、组织和角色间的关系,我们可以使用架构模式进行查阅。

点击列表模式下数据表格右上角 创建角色 按钮右侧的小图标,即可进入到架构模式进行浏览。该模式下的页面被分为了三个部分:

  1. 组织架构树形图:这部分内容与 组织管理 页面中左侧的组织架构树形图一样。
  2. 角色列表:上半部分显示了所有属于左侧所选组织类型的角色;下半部分显示了所有全局角色。也就是所有可以在当前所选组织类型下被用户关联的角色。
  3. 用户数据表格:表格展示了所有属于左侧所选组织类型的用户,或者说这些用户关联的组织,都属于左侧所选的组织类型。

考虑到,我们已经在 供应商 下录入了一些用户及组织数据,我们现在可以将左侧最上方的组织类型切换到 供应商,以便更好地理解数据间的关系。

FreeAuth Role Management - Structure View

从上图可见,这个模式下的视图更有助于我们查阅某个组织类型下用户和角色之间的关系。您可以通过点击中间角色列表栏内某个角色尾部的“添加图标”进入到该角色的详情页,为其一次性关联多个用户;也可以通过用户数据表格中某个用户行尾部的操作栏为该用户一次性配置多个角色,如下图所示:

FreeAuth Role Management - Set Roles

为用户配置角色时,您可以在上图的表单中录入所需角色名的关键字,系统则会通过模糊匹配在下拉框中列出所有结果。注意:这里仅可以搜索出全局角色及该用户所在组织类型下的角色。选择角色并保存后,该用户拥有该角色的关系会即刻得到更新,通过用户数据表格中的角色列进行呈现。

FreeAuth Role Management - Set Roles

FreeAuth Role Management - Set Roles Result

至于这个模式下的其他功能,我们就不在这里赘述了,我们相信基于 FreeAuth 的交互设计和用户体验,探索更多功能对您将不会成为一个问题。

绑定/解绑用户

那么,如何绑定或者解绑用户和某个角色之间的关系呢?

第一种方式是在角色的详情页中,您可以在角色管理表格中点击角色名称进入到该页面。进入后,将位于上方的选项卡切换至 关联主体,所有拥有该角色的用户将会被列举在其下方。点击用户列表右上方的蓝色按钮 添加主体,则一次性关联多个用户。点击用户列表中用户行的最后一列操作栏中的 移除主体 则可解除该用户与当前角色之间的关联。

FreeAuth Role Details Page - Associated Users

第二种方式是在用户的详情页中,您可以在用户管理表格中点击用户名称进入到该页面。进入后,将位于上方的选项卡切换至 角色信息,该用户所关联的角色将会被列举在其下方。点击列表左下角的 配置角色,即可完成对该用户关联角色的变更。在这里,您可以一次性关联或解绑多个角色。

FreeAuth User Details Page - Change Roles

如果您想从该用户关联的角色中移除某一个角色,除了上述的 配置角色,您也可以在当前页面的角色列表中找到该角色,并点击其所在行最后一列操作栏中的 移除角色,操作后,该角色将从列表中移除,随之解除与该用户的关联关系。

FreeAuth User Details Page - Unbind Roles