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. agc_app表新增字段 app_admin 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. 新建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;
  1. 新建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

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

AgileConfig轻量级配置中心1.3.0发布,支持多用户权限控制的更多相关文章

  1. AgileConfig - 轻量级配置中心1.2.0发布,全新的UI✨✨✨

    AgileConfig自发布以来有个"大问题"-UI太丑.因为当初这个项目是给自己用的,连UI界面都没有,全靠手动在数据库里改配置.后来匆匆忙忙使用bootstrap3简单的码了一 ...

  2. AgileConfig轻量级配置中心1.4.0发布,重构了发布功能

    加入 NCC 先说一个事,AgileConfig 在 7 月底终于通过了 NCC 社区的审核,正式成为了 NCC 大家庭的一员.这对 AgileConfig 来说是一个里程碑,希望加入 NCC 后能更 ...

  3. AgileConfig-轻量级配置中心 1.1.0 发布,支持应用间配置继承

    AgileConfig轻量级配置中心自第一个版本发布不知不觉已经半年了.在并未进行什么推广的情况下收到了250个star,对我有很大的鼓舞,并且也有不少同学试用,并且给出了宝贵的意见,非常感谢他们.其 ...

  4. AgileConfig 轻量级配置中心 1.5 发布 - 支持多环境配置

    AgileConfig 从发布到现在,收到不同学的 issue 说需要多环境的支持.也就是一个应用在不同的环境下可以配置不同的配置项.这是一个非常有用的功能,就跟我们开发的时候会设置多个 appset ...

  5. 造轮子-AgileConfig基于.NetCore的一个轻量级配置中心

    微服务确实是行业的一个趋势,我自己也在把一些项目往微服务架构迁移.玩微服务架构配置中心是一个绕不过去的东西,有很多大牌的可以选,比如spring-cloud-config,apoll,disconf等 ...

  6. AgileConfig 1.6.0 发布 - 支持服务注册与发现

    大家好,好久没有输出博文了,一是因为比较忙,另外一个原因是最近主要的精力是在给 AgileConfig 添加一个新的功能:服务注册与发现. 先说说为什么会添加这个功能.我自己的项目是用 Consul ...

  7. Visual Studio Code 1.0发布,支持中文在内9种语言

    Visual Studio Code 1.0发布,支持中文在内的9种语言:Simplified Chinese, Traditional Chinese, French, German, Italia ...

  8. 轻量级php框架phpk v1.0发布

    phpk框架简介 PHPK是一个简单易用,易于扩展的轻量级PHP框架.phpk不仅仅是一个php框架,也是一个js框架,内置一套全新的js内库,完全摒弃了庞大的jquery,所有的前端都是一个全新的微 ...

  9. Omi应用md2site-0.5.0发布-支持动态markdown拉取解析

    写在前面 Md2site是基于Omi的一款Markdown转网站工具,使用简单,生成的文件轻巧,功能强大. 官网:http://alloyteam.github.io/omi/md2site/ Git ...

随机推荐

  1. <JVM中篇:字节码与类的加载篇>01-Class字节码文件结构

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...

  2. 【Github搬砖】Python入门网络爬虫之精华版

    Python学习网络爬虫主要分3个大的版块:抓取,分析,存储 另外,比较常用的爬虫框架Scrapy,这里最后也详细介绍一下. 首先列举一下本人总结的相关文章,这些覆盖了入门网络爬虫需要的基本概念和技巧 ...

  3. JVM默认内存大小

    堆(Heap)和非堆(Non-heap)内存 按照官方的说法:"Java虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在Java虚拟机启动时创建的." ...

  4. spring boot pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  5. Linux下查看在线用户及用户进程

    #该服务器下的所有用户运行进程的情况 ps -ax -u #查看java程序下用户的进程情况 ps -ax -u |grep java   或  ps aux|grep java cat /etc/p ...

  6. python 键盘中断子线程及graceful exiting方案

    最近需要实现一个服务程序的graceful exiting,保证在退出前关闭所有已创建的子线程 python借助KeyboardInterrupted异常响应键盘中断,因此首先尝试在子线程中try-c ...

  7. Jenkins 基础篇 - 任务分类

    从前面的小节中我们看到在创建 Jenkins 任务的时候有好几种类型,如果你专门安装了 Maven 相关插件,可能还会有一个[构建一个 maven 项目]的任务类型,那这些任务类型究竟有何区别,以及我 ...

  8. ES6学习-0 前言

    本菜鸟做了二十来年的程序开发了,前后台都写过,队伍也带过.大约是2000年左右,是用dephi 写后台CGI,所有的html,js,css基本都是混在CGI里输出到前台的,那时也没有明确的前后台的概念 ...

  9. 折腾gcc/g++链接时.o文件及库的顺序问题

    gcc/g++链接时.o文件以及库的顺序问题 1 写在前面 最近换了xubuntu12.4,把原来的项目co出来编译的时候报"undefined reference to".猜测是 ...

  10. centOS 7 安装 CUPS 打印服务器,安装映美 FP-730K打印机共享

    centOS 7 安装 CUPS 打印服务器,安装映美 FP-730K打印机共享 2017-09-13 16:27:02 mostone 阅读数 3698   版权声明:本文为博主原创文章,遵循CC ...