权限手册(5.1以上)

此手册基于5.0版本的权限系统,新增了角色管理中的权限配置功能。对于5.0版本的权限功能说明,请参考此前发布的权限手册:https://doc.oinone.top/auth/14357.html。本手册仅介绍新增的功能,其他功能详见此前的版本手册。

1. 角色管理--权限配置

在“角色管理--权限配置”中,用户可以从角色维度查看和配置该角色的各类权限,包括访问权限、管理权限、字段权限和数据权限。通过角色的视角,用户能够清晰地管理每个角色在系统中的权限,确保权限配置灵活且符合业务需求。

image

1.1. 资源访问权限

用户选择某一角色并查看其对应的“资源访问权限”。在进入该角色的详细页面后,用户能够看到该角色当前被授权访问的系统资源。同时,用户还可以对该角色的“资源访问权限”进行修改,增删或调整角色可以访问的具体资源。完成修改后,点击“确定”按钮,系统将保存这些更改,并更新该角色的访问权限配置。

image-(1)

1.2. 资源管理权限

选择某一角色并查看其对应的“资源管理权限”。用户能够看到对应角色当前被授权管理的系统资源。同时,用户还可以对该角色的“资源管理权限”进行修改,增删或调整角色可以访问的具体资源。完成修改后,点击“确定”按钮,系统将保存这些更改,并更新该角色的管理权限配置。

image-(2)

值得注意的是

  1. 二级菜单无法进行授权,因为即使对其进行了授权,点击时也不会有实际效果。
  2. 平台设计了父子节点不联动的权限管理方式,赋予用户更大的灵活性。这样一来,用户可以为某个菜单授予访问权限,而无需同步设置其动作权限;相反,也可以临时取消对菜单的访问权限,但仍然保留对动作权限的访问配置。由于父子节点不联动,系统特别提供了“全选”功能,避免逐一勾选的繁琐操作,提高了权限配置的效率。

image-(3)

  1. 当我们在菜单维度对权限组进行配置调整时,所做的更改会同步到角色维度的权限设置中。然而,若在角色维度对权限进行修改,系统不会将这些更改同步回菜单维度,而是将该角色从相应的权限组中移除。
    • 举个例子,假设我在“系统权限”菜单中选择了某个应用,并在该应用的“访问权限”权限组中添加了一个名为“测试专用”的角色。随后,我进入“角色管理”中的“权限配置”模块进行修改操作,看看会产生什么效果。
  • 首先,我们在“系统权限”中为资源模块的地址库-地区添加“测试专用”角色。

image-(4)

  • 然后,进入“角色管理”模块,找到“测试专用”角色并点击权限配置,此时可以看到该角色在资源模块的地址库-地区已经拥有访问权限。

image-(5)

  • 接着,我们在这个界面中进行修改操作,比如勾选“国家分组”的访问权限。完成后,返回“系统权限”查看。

image-(6)

  • 我们会发现,刚刚添加的“测试专用”角色已经从“系统权限”中移除。这是因为系统不会将角色维度的权限修改同步回菜单维度,而是直接移除该角色,以确保权限配置的准确性和一致性。

image-(7)

解释:

这样设计的原因在于,权限组中的权限是多个角色共享的。如果将对某个角色的权限修改同步到菜单维度,会影响其他角色的权限配置。为了避免这种情况,系统确保对单个角色的权限修改不会改变权限组中其他角色的设置。因此,当在角色维度修改权限时,系统会将该角色从对应的权限组中移除。这也表明应用和角色维度的数据是互通的:菜单维度的变更可以同步到角色维度,而角色维度的变更则不会自动反映到菜单维度,以避免授权冲突。

1.3. 字段权限

在“字段权限”页面,用户可以查看并管理某个角色所有的模型及其字段权限。系统提供了两个便于查找的搜索框:

搜索框 1:允许用户根据模型的编码或名称进行快速搜索,方便定位特定的模型。

搜索框 2:用户可以根据权限状态筛选模型,选择显示角色拥有权限的模型或查看系统中全部模型。

使用这两个搜索框后,按回车键即可启动搜索,快速查找并修改相关模型或字段的权限。

用户还可以对字段的读写权限进行修改,确保特定角色在系统中对特定字段有合适的权限。完成修改后,点击“保存”按钮,系统将会更新角色的字段权限配置。

image-(8)

1.4. 数据权限

在“角色管理”中进行权限配置时,所涉及的数据权限是指为特定角色设定数据权限项。可以通过点击“新增权限项”按钮,添加该角色所需的数据权限。

image-(9)

值得注意的是

  1. 在“角色管理-数据权限”模块中设置的数据权限不会同步到“数据权限”菜单的单个数据配置中,并且当“角色管理-数据权限”发生变化还会导致该角色从“数据权限”菜单的单个数据配置中移除。而在“数据权限”菜单中进行修改时,这些更改会被应用到“角色管理-数据权限”中相应的角色。
    • 举个例子,当我在“数据权限”菜单中创建了一条数据,然后在“角色管理-权限配置”中对该角色的权限进行修改,看看会产生什么效果。
  • 在“数据权限”菜单中创建一条数据权限,选择角色为“测试专用”,并将数据权限设置为“1111”,然后点击保存。

image-(10)

  • 接着,进入“角色管理”中,选择“测试专用”角色的权限配置,查看数据权限。此时我们会发现数据权限中新增了一条“1111”的数据权限项。这表明在这两个维度间的数据是互通的。

image-(11)

  • 然后,在“角色管理”当前的“测试专用”角色页面中新增一条数据权限项,再去“数据权限”菜单下查看效果。

image-(12)

  • 在“数据权限”菜单下发现角色被移除。

image-(13)

解释:

在“数据权限”菜单中配置的是多个角色对应的多个数据权限项,而在“角色管理”中则展示了某个角色对应的所有数据权限项。与之前的逻辑一致,对多个角色的多个数据权限项进行更改会同步到特定角色的数据权限中,但对某个角色的数据权限的修改并不会同步到其他角色的多个权限项中。

本文来自投稿,不代表Oinone社区立场,如若转载,请注明出处:https://doc.oinone.top/chan-pin-shi-yong-shou-ce/17797.html

(0)
萧炎的头像萧炎数式员工
上一篇 2024年9月26日 pm3:33
下一篇 2024年9月27日 am11:20

相关推荐

  • 复制API

    通过API复制功能,用户可以快速基于已有的API创建新的副本,从而减少重复性工作。复制完成后,用户可以根据实际需求修改API副本的详细信息,如名称、描述、请求参数、响应参数等。

    2024年9月20日
    75300
  • 数据可视化创建图表

    在数据可视化模块中,可以通过三种不同的数据源类型来创建图表:模型字段(现有功能)、数据库(新功能)、集成应用(新功能)。

    2024年10月8日
    1.2K00
  • 系统配置

    系统配置模块帮助企业在平台中实现个性化,以满足不同的业务需求和企业文化展示。该模块主要包含二个部分:全局配置、应用配置。

    2024年8月30日
    83100
  • 使用GraphQL生成API文档

    GraphiQL 是一个非常流行的交互式开发环境(IDE),专门用于浏览、编写和测试 GraphQL 查询。它不仅可以帮助你查询 API,还可以自动生成文档。以下是如何使用 GraphiQL 的具体步骤: 仓库地址:https://github.com/anvilco/spectaql?tab=readme-ov-file#yaml-options 一、使用GraphiQL 工具生成API文档。 1. GraphiQL 安装与配置 方式 : 本地或全局安装 GraphiQL 如果你的 GraphQL API 服务器没有内置 GraphiQL,你可以使用独立的 GraphiQL 框架或包。 全局安装 GraphiQL如果你想在本地环境使用 GraphiQL,你可以通过 npm 或 yarn 安装:如果下载不成功可以使用淘宝镜像源 npm install -g graphiql 通过 npm 或 Yarn 安装为开发依赖你也可以将 GraphiQL 作为开发依赖安装到项目中: npm install graphiql 生成您的文档! npx spectaql config.yml 运行此命令你需要一份config.yml文件。具体使用参考https://github.com/anvilco/spectaql?tab=readme-ov-file#yaml-options 2. 使用JSON格式生成文档 生成或导出 schema 文件 自动生成 schema如果你使用的是 Java 类和注解方式定义的 GraphQL API(使用 @GraphQLQuery 等注解),GraphQL schema 通常在运行时生成。你可以使用 Spring Boot 启动后访问 GraphQL endpoint 来手动导出 schema。 访问 GraphQL Endpoint:在应用运行时,GraphQL API 通常暴露在 /graphql 路径下。你可以通过 introspection 查询导出完整的 GraphQL schema。 下面是一个 introspection 查询的示例,它可以帮助你获取 schema:这个查询可根据文档需要动态调整。查询http://127.0.0.1:8091/pamirs/graphql,注意保证工程yml配置文件pamirs.framework.gateway.show-doc: true为开启状态。 query IntrospectionQuery { __schema { queryType { …FullType } mutationType { …FullType } subscriptionType { name } types { …FullType } directives { name description locations args { …InputValue } } } } fragment FullType on __Type { kind name description fields(includeDeprecated: true) { name description args { …InputValue } type { …TypeRef } isDeprecated deprecationReason } inputFields { …InputValue } interfaces { …TypeRef } enumValues(includeDeprecated: true) { name description isDeprecated deprecationReason } possibleTypes { …TypeRef } } fragment InputValue on __InputValue { name description type { …TypeRef } defaultValue } fragment…

    2024年9月13日
    83100
  • 应用中心

    在App Finder 中点击应用中心可以进入Oinone的应用中心,可以看到Oinone平台所有应用列表、应用大屏、以及技术可视化。

    2024年8月30日
    72600

Leave a Reply

登录后才能评论