AgileConfig轻量级配置中心1.3.0发布,支持多用户权限控制

AgileConfig 当初是设计给我自己用的一个工具,所以只设置了一道管理员密码,没有用户的概念。但是很多同学在使用过后都提出了需要多用户支持的建议。整个团队或者整个公司都使用同一个密码来管理非常的不方便。
今天 AgileConfig 1.3.0 版本终于支持了多用户,以及简单的权限管理。用户跟权限的设计,在我们开发管理系统的时候经常涉及,最常用的就是RBAC基于角色的权限控制。但是基于 AgileConfig 简单的理念,我稍微简化了一点权限控制的功能设计,尽量的降低学习成本。

权限设计

AgileConfig 的权限设计分为3个固定的角色:

  1. 超级管理员
    超级管理员具有一切的控制权限,可以随意添加修改删除用户、应用、配置等等任何信息

  2. 管理员
    普通管理员可以新建应用,可以删除修改属于他的应用(应用的管理员属性为当前用户),以及该应用的配置项。管理员可以给任何用户授权所属应用配置项的管理权限。管理员可以添加修改删除角色为操作员的用户。

  3. 操作员
    操作员对应用没有任何控制权限,只能编辑或者发布下线经过管理员授权的应用的配置项。

用户管理

1.3.0 版本新增了多用户支持,那么用户管理是必须的功能。

使用管理员级别的用户登录系统后,点击“用户”=>“添加”按钮弹出用户新增界面。

添加“用户名”、“密码”、团队等基本信息后,选择用户的角色。点击“确定”新建用户。提示成功后就可以使用该用户登录系统了。

应用授权

1.3.0 版本支持对用户进行简单的授权管理。

管理员在新建/编辑应用的时候可以维护一个管理员角色的用户。该账号对该应用具有完全的控制权限。

如果想要其它用户来编辑配置项,可以在授权界面进行授权。点击“授权”按钮弹出授权界面。

权限分为两部分:

  1. 配置修改权:配置项的改删查权限

  2. 配置上下线权:配置项的上线,下线权限。

升级需要更新的数据库结构

由于1.3加入了多用户的支持,新增了几张表跟字段,导致1.2升级1.3后程序运行报错的问题,需要手工调整表结构。
以下以mysql为例:

  1. agcapp表新增字段 appadmin varchar(36)

  2. 新建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;
  1. 新建agcuserapp_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;
  1. 新建agcuserrole表

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

关注我的公众号一起玩转技术

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/301525.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每日一笑 | 马冬梅当上了百度投资董事???

全世界只有3.14 % 的人关注了数据与算法之美马东什么?(图片来源于网络,侵权删)

批处理解决局域网共享打印机问题

随着公司规模的扩大,人员流动性也越来越大。特别是业务这块,隔三差五的就来几个业务人员,一入职各种后勤工作都要给他们安排好。网络这块除了基本的网线,电话要通以外。最最后面的当然就是打印机的共享了。 先说说公司的网络环境。…

.NET MAUI 预览版 6 发布

原文:bit.ly/2SKad9g作者:.NET Blog - David译者:精致码农 - 王亮当我们还在从微软 Build 大会和 .NET 6 预览版 4 中缓过来的时候,我们在这里就开始分享我们在 .NET 6 预览版 5 中对 .NET 多平台应用程序开发框架(.NET MAUI)的持…

德国布线牛到不行?今天带你看看咱们中国的!

全世界只有3.14 % 的人关注了数据与算法之美相信不少人都有看过德国的布线,那整齐的感觉让人舒服。这是由BuzzFeed网站刊登的照片,从图片可以看出,德国工程师严谨的态度却是表现的淋漓尽致,让人大饱眼福,简直就是洁癖症…

Java进阶02 异常处理

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 程序很难做到完美,不免有各种各样的异常。比如程序本身有bug,比如程序打印时打印机没有纸了,比如内存不足。…

每日一笑 | 对不起,我还没下班...

全世界只有3.14 % 的人关注了数据与算法之美(图片来源于网络,侵权删)

差异分析定位Ring 3保护模块

差异分析定位Ring 3保护模块 由于保护模块通常会Hook操作系统的原生DLL接口来进行保护,所以可以采用差异比较原生DLL文件和加载到内存中的原生DLL直接的差别来定位Ring 3模块。 在分析的过程中,为了防止被Ring 3保护模块发现,暂时可以先把除了…

html 输入框自动缩短 一行内显示,JQuery UI组合框自动补全功能改进版(即时全部显示+input内容保存)...

JQuery UI Autocomplete(自动补全)功能在input前端设计中非常有用,最近一个项目正好用到,仔细研究了下组合框(combobox)的自动补全部分,官方地址是:https://jqueryui.com/autocomplete/#combobox。官方的功能需要一个额外下拉按钮…

Magicodes.IE 2.5.4.2发布

Magicode.IE,导入导出通用库,支持Dto导入导出、模板导出、花式导出以及动态导出,支持Excel、Csv、Word、Pdf和Html。Github:https://github.com/dotnetcore/Magicodes.IE码云(手动同步,不维护)&…

耗时6年的DK博物科普巨著,全面提升孩子的认知高度

▲数据汪特别推荐点击上图进入玩酷屋小木用真金白银来给大家送礼物啦,特别感谢这些年一直以来大家对我们的支持,才让我们越做越好。(点我参与送礼活动)小木每次带侄子去郊游时,侄子总是会不断地提问,“这是…

android fragmentstatepageradapter框架,安卓爬坑指南之FragmentStatePagerAdapter

一次开发中,用到了viewpager嵌套viewpager,结果就踩到了这么一个坑。先上图:image.png图片中显示的界面布局和遇到的问题是这样的:首页发现版块是一个fragment,这个fragment中放了一个viewpager,这个viewpa…

每日一笑 | 一个男人逐渐变心的过程

全世界只有3.14 % 的人关注了数据与算法之美(图片来源于网络,侵权删)

html 表格 左侧表头,左侧是表头的JS表格控件(自写,网上没有的)

今天,项目中要用到该表格,找了一遍,发现没有合适的,于是自己动手丰衣足食。最终呈现效果如上图,1、左侧是表头的表格数据展现,2、支持多行,多表头3、固定表头的功能4、能够支持标题5、获取表格中…

一个人的夜晚,让这些公众号来温暖你。

“外表的美只能取悦于人的眼睛,而内在的美却能感染人的灵魂”。阅读的内容决定了你的视野,转发的内容展现了你的底蕴。这些优质内容,你值得拥有,看下去你就知道。【关注方式:长按二维码,选择“识别图中二维…

grub参数介绍。

为什么80%的码农都做不了架构师?>>> grub的配置文件在/boot/grub/grub.conf。/etc/grub.conf和/boot/grub/menu.lst都是指向这个文件的软连接。 grub启动时,会寻找menu.lst文件,如果找不到,则进入grub>交互界面。…

又一次Task.Wait引起的教训

最近一用户在使用BeetleX.HttpClient组件并发访问延时比较高的https服务时引起了卡死现像。由于组件更多使用场景是内部服务和非https,一直没有这情况出现;但用户提供测试场景下这情况必现,所以翻查了一些相关代码。protected virtual void OnSslAuthent…

html盒模型向上浮动,HTML5盒模型、浮动和定位

在此之前我们先了解一下块级元素和行内元素的区别一、块级元素1、总是从新的一行开始2、高度、宽度都是可控的3、宽度没有设置时,默认为100%4、块级元素中可以包含块级元素和行内元素二、行内元素1、和其他元素都在一行2、高度、宽度以及内边距都是不可控的3、宽高就…

关于一个js栈溢出的异常

快一年没写web端的东西了,今天写了点东西。唉,快忘了,不过还好,基本的开发技能还是练出来了,这东西不能忘。 另外在这里贴点代码,预防以后会出现类似的情况。 javascript代码 //列表数据var appText new A…

科学中有故事,故事中有科学

▲数据汪特别推荐点击上图进入玩酷屋小木用真金白银来给大家送礼物啦,特别感谢这些年一直以来大家对我们的支持,才让我们越做越好。(点我参与送礼活动)孩子缺什么?不应该只是知识是独立思考意识、逻辑思维能力基于科学…

[译]WPF开源控件扩展库ControlzEx

原文链接:https://github.com/ControlzEx/ControlzEx翻译:沙漠尽头的狼(谷歌及百度提供翻译支持)Shared Controlz for WPF支持 .NET Framework(4.5.2、4.6.2 及更高版本)、.NET Core (3.1) 和 .NET 5&#…