AgileConfig 当初是设计给我本人用的一个工具,所以只设置了一道管理员明码,没有用户的概念。然而很多同学在应用过后都提出了须要多用户反对的倡议。整个团队或者整个公司都应用同一个明码来治理十分的不不便。
明天 AgileConfig 1.3.0 版本终于反对了多用户,以及简略的权限治理。用户跟权限的设计,在咱们开发管理系统的时候常常波及,最罕用的就是 RBAC 基于角色的权限管制。然而基于 AgileConfig 简略的理念,我略微简化了一点权限管制的功能设计,尽量的升高学习老本。
权限设计
AgileConfig 的权限设计分为 3 个固定的角色:
- 超级管理员
超级管理员具备所有的管制权限,能够随便增加批改删除用户、利用、配置等等任何信息 - 管理员
一般管理员能够新建利用,能够删除批改属于他的利用(利用的管理员属性为以后用户),以及该利用的配置项。管理员能够给任何用户受权所属利用配置项的管理权限。管理员能够增加批改删除角色为操作员的用户。 - 操作员
操作员对利用没有任何管制权限,只能编辑或者公布下线通过管理员受权的利用的配置项。
用户治理
1.3.0 版本新增了多用户反对,那么用户治理是必须的性能。
应用管理员级别的用户登录零碎后,点击“用户”=>“增加”按钮弹出用户新增界面。
增加“用户名”、“明码”、团队等根本信息后,抉择用户的角色。点击“确定”新建用户。提醒胜利后就能够应用该用户登录零碎了。
利用受权
1.3.0 版本反对对用户进行简略的受权治理。
管理员在新建 / 编辑利用的时候能够保护一个管理员角色的用户。该账号对该利用具备齐全的管制权限。
如果想要其它用户来编辑配置项,能够在受权界面进行受权。点击“受权”按钮弹出受权界面。
权限分为两局部:
- 配置修改权:配置项的改删查权限
- 配置高低线权:配置项的上线,下线权限。
降级须要更新的数据库构造
因为 1.3 退出了多用户的反对,新增了几张表跟字段,导致 1.2 降级 1.3 后程序运行报错的问题,须要手工调整表构造。
以下以 mysql 为例:
- agc_app 表新增字段 app_admin varchar(36)
-
新建 agc_user 表
CREATE TABLE `agc_user` (`id` varchar(36) NOT NULL, `user_name` varchar(50) DEFAULT NULL, `password` varchar(50) DEFAULT NULL, `salt` varchar(36) DEFAULT NULL, `team` varchar(50) DEFAULT NULL, `create_time` datetime(3) NOT NULL, `update_time` datetime(3) DEFAULT NULL, `status` enum('Normal','Deleted') NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-
新建 agc_user_app_auth 表
CREATE TABLE `agc_user_app_auth` (`id` varchar(36) NOT NULL, `app_id` varchar(36) DEFAULT NULL, `user_id` varchar(36) DEFAULT NULL, `permission` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
- 新建 agc_user_role 表
CREATE TABLE `agc_user_role` (`id` varchar(36) NOT NULL,
`user_id` varchar(50) DEFAULT NULL,
`role` enum('SuperAdmin','Admin','NormalUser') NOT NULL,
`create_time` datetime(3) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
新建实现表跟字段后从新运行程序,会提醒重置超级管理员明码, 之后就能够失常应用了。
最初
✨✨✨Github 地址:https://github.com/kklldog/AgileConfig 开源不易,欢送 star✨✨✨
演示地址:AgileConfig Server Demo 超级管理员账号:admin 明码:123456