用户权限管理:2.0教程第5章谁能看什么

2026-06-12阅读 0热度 0
开源

上一章完成了表单与详情页的搭建,工单系统已支持基本的数据录入与查阅。然而当前所有用户登录后共享同一视图:普通员工能看到管理面板,技术员可删除分类——权限缺失导致安全隐患。

本章为系统构建“访问控制层”:通过创建角色、配置菜单权限与数据范围,实现差异化的菜单可见性与数据操作权限

5.1 理解角色(Role)

在 NocoBase 中,角色本质是权限策略的聚合容器。无需为每个用户单独分配权限,只需定义若干角色,再将用户归属到对应角色下即可。

NocoBase 安装后内置三个角色:

  • Root:超级管理员,拥有全部系统权限,不可删除
  • Admin:管理员,默认具备配置界面的操作权限
  • Member:普通成员,默认权限范围最小

但内置角色无法满足工单系统的精细化管控需求,因此我们需要新建三个自定义角色。

5.2 创建三个角色

点击右上角设置菜单,进入 用户和权限 → 角色管理

单击 添加角色,依次创建以下角色:

角色名称角色标识说明
管理员admin-helpdesk查看全部工单,管理分类,分配工单处理人
技术员technician仅查看分配给自己的工单,可处理并关闭
普通用户user仅能提交工单,且只能查看自己提交的记录

角色标识是系统内部使用的唯一编码,创建后不可修改,建议采用英文小写。角色名称可随时调整。

创建完成后,角色列表应显示我们新增的三个角色。

5.3 配置菜单权限

角色创建后,接下来定义每个角色可访问的菜单项。

点击目标角色进入权限配置页面,切换到 菜单访问权限 标签页。此处列出系统中所有菜单条目,勾选表示允许访问,取消勾选则隐藏该菜单。

管理员(admin-helpdesk):全部勾选

  • 工单管理、分类管理、仪表盘——均可访问

技术员(technician):部分勾选

  • ✅ 工单管理
  • ✅ 仪表盘
  • ❌ 分类管理(技术员无需维护分类)

普通用户(user):最小权限

  • ✅ 工单管理(仅可查看本人的工单)
  • ❌ 分类管理
  • ❌ 仪表盘

实用技巧:NocoBase 提供“新增菜单项默认允许访问”开关。若希望每次添加新页面后自动对管理员开放,可开启此选项;对普通用户角色建议关闭,以保持权限最小化。

5.4 配置数据权限

菜单权限控制“页面入口”,数据权限则决定“进入页面后能看到哪些数据记录”。

核心概念:数据范围(Data Scope)

在角色的权限配置中,切换到 数据表操作权限 标签页。找到“工单”数据表,点击进入独立配置。

普通用户:仅查看自己提交的工单

  1. 定位“工单”表的 查看 权限
  2. 数据范围选择 → 自己的数据
  3. 此时普通用户只能看到“创建人”为当前用户的工单(注意:默认筛选依据是系统创建人字段,而非提交人字段;如有特殊需求可后续调整)

同理,将“编辑”和“删除”权限也设为 自己的数据(也可直接禁用删除权限)。

关于全局配置:若仅配置工单表,可能导致其他数据表(如分类表、处理人相关表)不可见。当前系统较简单,可在全局中直接勾选 “查看所有数据”,仅对数据范围敏感的表单独设置权限。

技术员:仅查看分配给自己的工单

  1. 定位“工单”表的 查看 权限
  2. 数据范围选择 → 自己的数据
  3. 注意:NocoBase 的“自己的数据”默认按创建人过滤。若希望按“处理人”字段过滤,可在全局操作权限中进一步调整,或通过前端数据区块的筛选条件配合实现

一个实用的折中方案:在表格区块上设置默认筛选条件辅助权限控制,例如“处理人 = 当前用户”。但该配置全局生效,管理员也会受限。可配置“处理人 = 当前用户 提交人 = 当前用户”,使普通用户和技术员都能看到相关工单;管理员如需查看全部数据,可单独创建不带筛选的页面。

管理员:查看所有数据

管理员角色的数据范围选择 所有数据,所有操作权限均开启。简单直接。

5.5 工单分配操作

在权限配置完成前,我们先为工单列表添加一个实用功能:分配处理人。管理员可直接在列表中为工单指派技术员,无需进入编辑页面修改多个字段。

实现方式:在表格操作列添加一个自定义弹窗按钮。

  1. 进入 UI 编辑器模式,在工单列表表格的操作列中,点击 「+」 添加一个 「弹窗(Popup)」 操作按钮。

  1. 将按钮标题修改为 「分配」(通过按钮配置项修改标题)。

由于仅涉及简单的分配信息,使用对话框比抽屉更合适。在按钮右上角的弹窗设置中,选择 对话框 > 确认

  1. 点击「分配」按钮打开弹窗,在弹窗中 「创建区块 → 数据区块 → 表单(编辑)」,选择当前数据表。
  2. 在表单中仅勾选 「处理人」 一个字段,并在字段配置中设为 必填
  3. 添加 「提交」 操作按钮。

配置完成后,管理员在工单列表中点击「分配」,弹出极简表单,选择处理人后提交即可。操作精准,避免误改其他字段。

用联动规则控制按钮显隐

「分配」按钮仅对管理员有用,普通用户和技术员看到此按钮会造成困扰。可通过联动规则根据当前用户角色动态控制按钮的显示/隐藏:

  1. 在 UI 编辑器模式下,点击「分配」按钮的配置项,找到 「联动规则」
  2. 添加一条规则,条件设为:当前用户 / 角色 / 角色名称 不等于 管理员(即 admin-helpdesk 角色对应的名称)。
  3. 满足条件时的动作:隐藏 该按钮。

如此,仅管理员角色的用户能看到「分配」按钮,其他角色登录后按钮自动隐藏。

5.6 创建测试用户并体验

权限配置完成后,进行实际验证。

进入 用户管理(设置中心或之前搭建的用户管理页面),创建 3 个测试用户:

用户名角色
Alice管理员(admin-helpdesk)
Bob技术员(technician)
Charlie普通用户(user)

创建完成后,分别用这三个账号登录系统,验证以下两点:

1. 菜单是否按预期显示?

  • Alice → 看到所有菜单

  • Bob → 仅看到工单管理和仪表盘

  • Charlie → 仅看到“我的工单”

2. 数据是否按预期过滤?

  • 先用 Alice 创建几条工单,分别分配给不同处理人
  • 切换到 Bob 登录 → 仅看到分配给他的工单
  • 切换到 Charlie 登录 → 仅看到自己提交的工单

同一套系统,不同用户看到完全不同的内容——这就是权限机制的价值。

小结

本章为工单系统建立了完整的权限体系:

  • 3 个角色:管理员、技术员、普通用户
  • 菜单权限:管控每个角色可访问的页面
  • 数据权限:通过数据范围控制每个角色可见的记录
  • 测试验证:使用不同账号登录确认权限生效

至此,工单系统已具备完整功能——支持录入、查看、角色化访问控制。但目前所有操作仍需手动执行。

下一章将学习 工作流(Workflow)——让系统自动完成业务流程。例如工单提交后自动通知处理人,状态变更时自动记录日志。

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策