Skip to content

第9章 角色权限

9.1 角色管理

应用角色管理模块是一个用于创建和管理应用程序中不同角色和权限的模块。

9.1.1 角色管理的概念

该模块允许创建和配置不同的角色,并将这些角色赋予在其他模块中具有不同增删改查权限的能力。这些角色可以被用于应用成员管理模块中,赋予不同的成员不同的应用权限。织信平台提供的应用角色管理模块的目标是帮助应用管理员在不牺牲安全性和数据访问控制的情况下,提高应用程序的可用性和可管理性。

Role_Permission

用户可以拥有多个角色,而拥有多角色的用户在应用中所具备的权限是具备角色权限的并集。

mult_role

9.1.2 自定义角色

该模块创建的角色是自定义角色,与设计器中全局设置下创建的角色有所不同,在应用设计中创建的角色,后方会有系统的标签,而在我们应用角色模块创建的角色会在后方有自定义的标签。其中应用设计器全局设置创建的系统角色会在导出应用时也会被导出,但应用角色模块创建的自定义角色并不会随着应用导出。 应用角色管理模块实现了在不访问设计器的前提下,应用成员可以在应用运行时自定义配置应用相关的角色权限,且不用重新发布应用的版本。

image-20231201111049989

自定义角色将作为应用数据进行存储,自定义角色将不会随安装包被导出

以下是应用角色管理模块的主要功能:

角色创建:

允许应用管理员(也可以自己定义其他角色)创建不同的应用角色。

image-20231201111739582

权限分配:

允许应用管理员(也可以自己定义其他角色)将已创建的角色,授予应用内创建模块的增删改查权限。

image-20231201111803901

角色管理:

允许应用管理员(也可以自己定义其他角色)编辑、删除已创建的角色,并为每个角色重新分配权限。

image-20231201112555126

查看模块的权限表示导航菜单栏会显示模块菜单 2、数据表权限中的查询数据 创建数据 编辑数据 删除数据 是数据权限,不会影响到控件按钮的显示可禁用状态

9.1.3 自定义权限

为了满足更丰富更细致的权限管理能力,织信平台支持在应用设计中针对应用或者指定模块设置自定义权限,完成设置后可通过表达式中的Context.hasAppPermContext.hasModulePerm()方法判断当前用户是否具备该自定义权限,从而实现权限控制效果。

例如我希望在【角色权限-成员】模块中加一个自定义权限,名称为创建项目,只有拥有此权限的成员才能在此模块中看到<创建项目>按钮。配置过程如下:在权限管理的【角色权限-成员】模块中加入创建项目权限→在【角色权限-成员】的表单工具栏中加入一个创建按钮→在该按钮中使用Context.hasModulePerm()设置条件隐藏

在权限管理的【角色权限-成员】模块中加入创建项目权限:

进入应用设计器中,打开全局设置,进入角色权限板块中,点击<权限管理>按钮

image-20231201113858445

在弹框中找到【角色权限-成员】模块,点击下方的<新增权限>按钮

image-20231201113924152

输入需要新增的权限的信息,点击保存即可。这里的标识符将在后续调用方法时使用,请务必按照规范进行命名

image-20231201113938033

在【角色权限-成员】的表单工具栏中加入一个创建按钮:

在应用设计器中打开【角色权限-成员】模块,进入视图设置板块,打开工具栏标签页,添加一个<创建项目>按钮控件,该控件的配置如下:

image-20231201114213766image-20231201114226943

在该按钮中使用Context.hasModulePerm()设置条件隐藏:

在控件中的[满足表达式时隐藏]配置项中,使用Context.hasModulePerm()方法进行设置,使得配置实现当用户不拥有权限时进行隐藏。点击此处可查看该方法的帮助文档。表达式内容如下:

js
${!Context.hasModulePerm('rolesUser','createProject')}
image-20231201114540032

效果展示:

当前的配置中,成员角色不具备创建项目权限,主管角色具备创建项目权限。

image-20231201115522237image-20231201115647802

9.2 成员管理

应用成员管理模块是一个核心功能模块,用于管理应用中的成员和权限分配。该模块可以帮助应用管理员控制特定用户和特定部门可以访问应用程序,并在必要时更改用户的角色以此来控制用户在应用中的权限。

applicationUser

功能介绍:

以下是应用成员管理模块的主要功能:

  • 成员添加和移除:应用管理员可以通过此模块将团队成员添加到应用程序中,或者从应用程序中移除应用中已有成员。
  • 部门和角色授权的添加和移除:应用管理员可以通过该模块将特定的团队部门团队角色授予和移除访问应用的权限。
  • 角色分配:允许应用管理员为应用中的成员分配应用角色。允许管理员轻松管理大量用户并确保他们只有访问他们所需的应用模块部分的权限。

在案例中,如图两个地方都可以进入成员管理模块。

image-20231201120008900

按部门和角色授权:

在成员管理中,支持按部门和角色授权给给特定团队角色或部门授予权限。

1、被授权的部门旗下所有的成员将都会拥有访问应用的权限

2、拥有被授权团队角色的用户均可以访问应用

操作方式:

打开成员管理,切换到按部门和角色授权标签页,点击新增授权,按需填写后点击确定即可。

image-20231201133659547

9.3 数据权限控制

在一些特定场景中,我们希望能对模块的数据权限进行控制,限制同一个模块中不同角色可查看到不同的数据,这个我们可以通过视图设置的[只展示满足以下条件的数据]配置项实现。

例:我们有一个【管理员】数据表中展示全部数据并且只有管理员角色可查看该模块,然后我们希望使用该表数据创建一个【成员】模块,所以成员都可以访问该模块,且在模块中只能查看类型为b的数据。

在上述场景中,当我们创建好【管理员】数据表和成员视图,然后再角色权限中设置这两个模块的权限,配置如下:

image-20231201134532787

因为【成员】模块为【管理员】数据表的视图,所以其查看等权限与【管理员】数据的权限一致,需要勾选【管理员】数据表中除查看模块外的其他权限,如果没有勾选查询数据权限,该角色成员再【成员】模块中将无法查看到数据,创建、编辑、删除权限同理

接着需要在【成员】模块的视图设置中,在[只展示满足以下条件的数据]配置项对获取的数据进行控制,配置如下:

image-20231201135215597

效果展示: image-20231201135253177

image-20231201135332558