记录一次用户管理(功能,角色,账号)重构的经历

本文记录对用户管理的重构经历,主要是三个方面:权限,角色,账号。

1、介绍权限,角色,账号的作用

  • 权限:用户的访问权限,包括菜单,页面,跳转页面,按钮四个粒度。
  • 角色:用户的角色情况,可以理解为是权限的集合。
  • 账号:用户的个人账号。

2、介绍原始结构

  • 一个用户拥有一个账号。
  • 一个账号可以拥有多个角色,如果这个账号是管理员,可以管理账号,管理角色。
  • 一个角色拥有多个权限。

3、介绍权限,角色,账号结构

  • 权限是树形结构,层级展开。
  • 角色单层级结构,角色有管理员属性,全局展示(管理员可以管理所有角色)。
  • 账号单层级结构,管理员可以管理所有账号。

问题:

  • 账号设置为管理员角色以后使用繁琐。
  • 管理员可以管理所有角色,所有账号,粒度太大。

 

为了解决上面两个问题,进行了第一次重构,重构以后的方案如下

  • 权限保持不变。
  • 角色设置为树形结构,管理员可以管理自己创建的角色。
  • 账号设置为树形结构,管理员可以管理自己创建的账号。
  • 初始化一个超级管理员,超级管理拥有所有权限。
  • 将管理员从角色维度转移到账号维度。

这个方案使用一段时间后发现新的问题

  • 角色冗余,每个管理员创建相同的角色。
  • 如果一个部门有两个管理员,单个管理员无法管理所有账号。
  • 如果管理员离职,将一个管理员的账号转移到另一个管理员下及其繁琐。

 

为了解决新的问题,最后进行了第二次重构,重构后结构如下

  • 权限保持不变。
  • 角色保持树形结构,添加“是否全局”来解决冗余问题。
  • 账号保持树形结构,给每一个部门添加一个“管理员”账号进行管理(没有实际意义)。

 

总结:不要过度设计优化,根据实际情况来设计对应的方案,操作不要太繁琐,多变通。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值