AgileConfig-1.11.0 发布:增强的权限管理
AgileConfig 作为一个轻量级配置中心,我一直强调其“轻量”的概念。因此,权限管理这一块一直比较薄弱,甚至可以说形同虚设。然而,在实际项目实施中,用户对于权限管理的需求非常强烈,因为某些配置(如数据库连接串)极为敏感。因此,加强权限管理功能的呼声一直很高。这次的新版本,就带来了这个重磅功能:基于角色的访问控制(RBAC)。关于什么是基于角色的访问控制,我想大家应该都明白,这里就不再赘述了。
题外话:AI 辅助编程
在开始介绍功能之前,我想聊一聊 AI 辅助编程这个话题。因为本次角色权限功能的开发,80%的编码任务是由 AI 完成的。我使用的模型是 OpenAI 的 codex。大家可能觉得 80% 这个数字非常亮眼,以为我因此少熬了几个夜,本来需要10天的工作,2天就完成了。但事实并非如此美好。AI 确实可以帮我生成基础的 CRUD 代码,但剩下的 20% 的代码却花了我 80% 的时间。
原因可能在于,这次开发并非一个全新的项目,而是在原有项目基础上叠加新功能。在开发新功能之前,需要先拆除原来与权限相关的代码。AI 在细节处理上并不能做到尽善尽美,即使在我介入并不断给出提示后,它还是屡屡出错。最后我实在无法忍受,只能亲自上手修改。但这时又出现了一个严重的问题:当我想亲自接手编码时,过程并不顺利,因为我对 AI 生成的代码不够了解。如果是自己写的代码,从整体到细节都了然于心,出现问题时能很快定位到错误的代码块。但要去修改 AI 写的代码,就会感到异常困难,无从下手。你不知道问题出在哪里,也不知道修改一处代码是否会影响其他部分。于是,只能从头到尾认真阅读并理解所有的修改点。可以说,这个过程并没有比自己从头实现一遍节省多少时间。这次的实践体验并不算美好,但从另一个方面也说明,AI 离替代程序员,至少是替代我,还为时尚早。
以下将详细介绍 AgileConfig 中的角色管理与用户管理功能。
0. 角色列表
首次操作请使用超级管理员登录系统,点击侧边菜单“角色”,就会显示内置的角色列表:Administrator 和 Operator。这两个角色不能被删除,但可以编辑其对应的权限。

1. 角色新增
管理员可以根据团队的组织结构或职能划分,创建不同的角色,例如“管理员”、“开发人员”、“测试人员”或“运维人员”。
创建角色的步骤如下:
- 登录 AgileConfig 管理后台。
- 导航至 “系统设置” -> “角色管理” 菜单。
- 点击 “新增” 按钮,打开新增角色对话框。
- 在对话框中,您需要填写以下信息:
- 角色名称: 一个清晰易懂的名称,如
Developers。 - 权限: 勾选该角色所拥有的权限。AgileConfig 的权限设计得非常精细,您可以为角色分配“编辑配置”、“发布配置”、“查看节点”等具体的操作权限。
- 角色名称: 一个清晰易懂的名称,如
- 点击 “确定” 保存新角色。
通过这种方式,您可以快速定义好不同职责所需的权限集合,为后续的用户管理打下基础。

2. 角色编辑
随着业务的发展或团队成员职责的变更,我们可能需要调整某个角色的权限。例如,为“开发人员”角色增加“回滚配置”的权限。
编辑角色的步骤非常简单:
- 在“角色管理”页面,找到您想要编辑的角色。
- 点击对应角色行的 “编辑” 按钮。
- 在弹出的对话框中,您可以修改角色名称或重新勾选所需的权限。
- 点击 “确定” 保存更改。
注意:修改角色的权限会立即影响到所有被赋予该角色的用户。在执行此操作前,请务必确认变更带来的影响。

3. 角色删除
如果某个角色不再需要,管理员可以将其删除。
删除角色的步骤如下:
- 在“角色管理”页面,找到您希望删除的角色。
- 点击对应角色行的 “删除” 按钮。
- 系统会弹出确认对话框,以防误操作。

4. 给用户设置角色
将用户与角色关联起来是实现权限管理的关键一步。在 AgileConfig 中,您可以在创建或编辑用户时直接为其分配角色。
操作步骤如下:
- 导航至 “系统设置” -> “用户管理” 菜单。
- 点击 “新增” 或者 “编辑” 按钮,打开对话框。
- 在 “角色” 选项中,从下拉列表或复选框中选择一个或多个已经创建好的角色分配给该用户。
- 点击 “确定” 保存信息。
保存成功后,该用户就继承了所分配角色的所有权限。如果一个用户被赋予了多个角色,他将拥有所有这些角色权限的并集。这种方式使得新员工入职或岗位变动时的权限授予工作变得异常高效和标准化。


用户在设置权限后进行登录,系统会自动计算出他具有的权限范围,以及对应的菜单权限等。

应用-用户授权
本次更新对应用的权限控制逻辑进行了重新设计。
- 管理员可以查看所有的应用。
- 其他角色原则上只能查看由自己创建的应用。
- 如果想让其他用户也能够查看或编辑对应的应用,则需要对其进行授权。

总结
本次 AgileConfig 的版本更新,我们引入了基于角色的访问控制(RBAC)功能。通过将权限与角色绑定、用户与角色关联的方式,实现了用户与权限的解耦,显著提升了系统的安全性和可维护性。
值得一提的是,本次功能的开发深度体验了 AI 辅助编程。尽管 AI 在基础代码生成上表现出色,但在处理复杂逻辑和项目既有代码的改造时,仍暴露出诸多局限性,甚至增加了后期调试与重构的难度。这次实践让我们深刻体会到,AI 目前尚难完全替代程序员进行复杂的软件工程任务。
最终,通过精细化的角色与权限设计,新版本将使您的配置中心运维工作更加轻松、有序。
最后
✨✨✨Github地址:https://github.com/dotnetcore/AgileConfig 开源不易,欢迎star✨✨✨
演示地址:https://agileconfig-server.xbaby.xyz/ 超级管理员账号:admin 密码:123456
关注我的公众号一起玩转技术

QQ群:1022985150 VX:kklldog 一起探讨学习.NET技术
作者:Agile.Zhou(kklldog)
出处:http://www.cnblogs.com/kklldog/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

浙公网安备 33010602011771号