如何设计B端产品的角色权限?

1、功能权限与数据权限如何设计?
阅读全文
请先 登录 后评论
  • 0 关注
  • 0 收藏 97 浏览
  • 略问用户 提出于 2021-01-16 09:53:15

4 个回答

xxxxxa

不知道你哪个行业,我简单说下我B端产品的权限角色设计吧,希望互相学习(一个面向基层医疗机构的信息化管理系统)

采用RBAC0模型:

通过用户关联角色、角色关联权限的方法来间接地赋予用户权限。用户和角色是多对一关系,即:一个用户只充当一种角色,一种角色可以有多个用户担当。

为什么这样做:

我们系统的功能解耦、每个菜单对应一种操作(如挂号、发药、进销存、收费等都是分开的菜单,且 都尽量减少关联性,当患者的诊疗数据没办法解耦,但用户操作起来都是独立的),且对于基层医疗系统来说,系统使用人员较少、岗位权限相对清晰,即使出现兼岗的情况,也可以通过增加一个角色增加一个权限的方式来为用户分配权限。

这样做的好处是:

1、职能划分相对谨慎。对于角色的权限调整不仅仅只影响单个用户,而是会影响关联此角色的所有用户,管理员下发/回收权限会更为谨慎;

2、便于权限管理。对于批量的用户权限调整,只需调整用户关联的角色权限即可,无需对每一个用户都进行权限调整,既大幅提升权限调整的效率,又降低漏调权限的概率;

但也有一个不同的地方,就是涉及到数据私密性和操作便捷性的地方,就是每个医生只能看到自己的患者,这里采用了一点RBAC1的一点设计方法(用户-组织-角色-权限),给医生赋予了一个组织,不过我们没有做在组织间的上下级,即使院长、超级管理员也是没有区分上下级的,所以医生所在组织就是他一个人。

这里做的目的:

1、医生只能看到自己的患者,别人看不到,保证了医生自己患者数据的私密性。

2、每个医生只有自己的患者,也方便他接诊,没有其他医生的患者数据的混乱。

请先 登录 后评论
xxxxxa

你这个问题的问法其实不具体,我觉得应该换成“B端产品的角色权限和数据权限怎么设计更符合业务发展”,要知道,产品设计的每一个功能都是为业务,为用户带来价值! 

功能权限一般符合RBAC,但数据权限,要看你们内部的数据管控的方式啦! 

比如,医疗系统的数据权限,就是挂在库房上面的,另外有些公司,数据权限又是挂在部门下面的,看具体情况而定!怎么定,更符合公司的需求!

请先 登录 后评论
xxxxxa

有时间看下Shiro、RBAC。

对于B端来说权限架构确实相对而言要复杂一些。

1.要能合理承载业务,就要把资源配置拆分粒度把控好。(一般来说要控制到按钮级别)

2.理解下平面坐标系,X轴是资源,Y轴是角色,每一个X都能对于一个Y。

3.前后分离,用好swagger。

否则,几乎天天加班改改改!

请先 登录 后评论
xxxxxa

RBAC

请先 登录 后评论