乐趣区

关于c#:AgileConfig轻量级配置中心130发布支持多用户权限控制

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;
  3. 新建 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;
  4. 新建 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

退出移动版