当前位置: 首页 > news >正文

【2.0 教程】第 5 章:用户与权限,谁能看什么

🎉NocoBase V2 系列教程已在官网-教程专栏发布,点击链接前往查看。
https://docs.nocobase.com/cn/tutorials/v2/

已发布教程速览:

NocoBase 2.0 入门教程 —— IT 工单系统

第一章:认识 NocoBase — 5 分钟跑起来

第二章:数据建模 — 给工单系统搭骨架

第三章:搭建页面 — 让数据看得见

第四章:表单与详情 — 让数据填得进

第五章:用户与权限 — 谁能看什么

第六章:工作流 — 让系统自己动起来

第七章:仪表盘 — 一眼看全局

本文为NocoBase V2 系列教程第 5 章:用户与权限 — 谁能看什么

在这个系列里,我们会从零开始,用 NocoBase 搭建一个极简的工单系统(HelpDesk)。整个系统只需要 2 张数据表,不写一行代码,即可实现工单提交、分类管理、变更追踪、权限控制和数据仪表盘。

上一章我们把表单和详情页做好了,工单系统已经能正常录入和查看数据。但现在有个问题——所有人登录后看到的东西都一样。提交工单的普通员工能看到管理页面,技术员能删除分类……这可不行。

这一章,我们来给系统加上"门禁":创建角色、配置菜单权限和数据范围,实现不同的人,看到不同的菜单,操作不同的数据

5.1 理解角色(Role)

在 NocoBase 里,角色就是一组权限的集合。你不需要给每个用户单独配权限,而是先定义好几个角色,再把用户丢进对应的角色里。

NocoBase 安装后自带三个角色:

但这三个内置角色不够用。我们的工单系统需要更细的划分,所以接下来我们创建 3 个自定义角色。

5.2 创建三个角色

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

点击添加角色,依次创建:

角色名称角色标识说明
管理员admin-helpdesk能看所有工单,管理分类,分配处理人
技术员technician只看分配给自己的工单,能处理和关闭
普通用户user只能提交工单,只能看自己提交的

角色标识是系统内部用的唯一 ID,创建后不能改,建议用英文小写。角色名称可以随时修改。

创建完成后,角色列表里应该能看到我们新建的三个角色。

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. 菜单是否按预期显示?

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

是不是很酷?同一个系统,不同用户看到完全不同的内容!这就是权限的力量。

小结

这一章我们完成了工单系统的权限体系:

到这里,工单系统已经像模像样了——能录入、能查看、能按角色控制访问。但所有操作都是手动的。

下一章预告

下一章我们来学工作流(Workflow)——让系统自动帮我们干活。比如工单提交后自动通知处理人,状态变更时自动记录日志。

相关资源


完全掌控,无限扩展,AI 协同。NocoBase 让你的团队快速响应变化,大幅降低成本。无需多年研发,无需数百万投入。花几分钟部署 NocoBase,立即拥有一切。

访问 NocoBase 官网

https://www.nocobase.com/cn

您可以在官网申请 Demo 演示,体验站点将在 1 分钟内创建完毕自动发送到您的邮箱。

访问 NocoBase GitHub 和 Gitee

https://github.com/nocobase/nocobase

https://gitee.com/nocobase/nocobase

下载 NocoBase 源码并安装。支持 Docker 安装、create-nocobase-app 安装和 Git 源码安装。

官方文档持续更新中

https://docs-cn.nocobase.com/

http://www.cnnetsun.cn/news/1491599.html

相关文章:

  • Excel如何锁定部分单元格不让编辑?保护重要数据,一招搞定
  • Phi-3-mini-128k-instruct学习C语言:指针与内存管理难点解析
  • ChatGPT for Google 实战:如何构建企业级搜索增强系统
  • Pixel Fashion Atelier效果展示:动态生成过程中的像素粒子聚合成型可视化
  • 智能客服Agent实战:从零搭建高可用对话系统的全流程指南
  • Excel动态甘特图制作指南:利用条件格式实现进度可视化
  • DataEyes聚合平台新API接入实战指南:从0到1打通实时数据链路
  • 集成豆包大模型API:提升Zotero PDF翻译精准度40%的技术实践
  • Qwerty Learner:重构开发者的语言与肌肉记忆训练系统
  • 【免费的Token,白嫖的AI】
  • AI应用开发工程师学习路线+实战经验总结
  • 产品经理进阶指南:如何用价值主张画布打造爆款产品
  • 别再用yield了!FastAPI 2.0官方弃用警告下的流式响应新范式(含ASGI StreamingResponse + async iterator最佳实践)
  • Linux字符设备驱动开发与核心架构解析
  • 【捕获WebSocket】基于CDP协议桥接Selenium与Playwright的自动化测试消息监听实战
  • 诺诺电子发票接口对接实战:从签约到上线的避坑指南
  • KLayout:打破传统EDA壁垒的开源集成电路验证平台
  • 从点击到购买:淘宝用户行为路径的Tableau可视化全解析
  • 轻松使用美股api接口和外汇接口获取行情
  • Thorium浏览器:突破性能瓶颈的开源解决方案
  • YOLO11快速入门指南:无需深度学习基础,5分钟跑通检测demo
  • 手把手教你用LTspice仿真DAB双有源桥DC-DC变换器(单移相SPS控制篇)
  • YOLOv5在PyTorch 2.8+环境下的兼容性陷阱与系统化修复指南
  • 微单时代还要买 UV 镜?
  • ollama-QwQ-32B长文本优化:OpenClaw处理大型PDF的技术要点
  • Kibana数据侦探实战:用Discover模块快速定位日志异常(含时间范围筛选秘籍)
  • 5个高效技巧:如何用NsEmuTools专业管理NS模拟器
  • Logisim实战:从零构建24小时数字计时器的模块化设计
  • Windows Defender管理工具:完全掌控系统安全防护的高效解决方案
  • LrcHelper:网易云音乐双语歌词下载与设备适配完整指南