最近看了很多关于权限管理系统的产品设计的文章(RBAC模型,Role-Based Access Control 基于角色的访问控制),总结下自己认识的权限系统。
一、RBAC模型解释
先来look下图,
图意:通过角色关联用户,角色关联权限的方式间接赋予用户各种权限。
用户:指使用此系统的所有人员
角色:权限的集合。
用户与角色之间是多对多的关系:1个用户可以允许拥有多个角色(权限取并集),同样1个角色可以分配给多个用户,所以 ,这里需要多一个用户角色关系表,主要是管理用户与角色之间的关系
二、权限的定义
权限:页面权限、操作权限(增删改查)、数据权限。
a.页面权限:所有系统都是由一个个的页面组成,页面再组成模块,用户是否能看到这个页面的菜单、是否能进入这个页面就称为页面权限
b.操作权限:用户在系统中的任何动作、交互,如增删改查
c.数据权限:对数据私密性的要求:哪些人可以看到哪些数据,不可以看到哪些数据
下面详细说下 数据权限,
解析下上面的图意:业务经理、业务主管、业务员都可以出单(都有自己的订单),而他们的职级关系是业务经理下面有业务主管、业务主管下面有业务员
而数据权限在这个地方的体现是:上级可以看到下级员工的数据,而不能看到 平级及其下级的员工数据。
定义数据:
1.业务员:仅可查看个人数据 (仅自己数据)
2.主管:可查看自己的数据和自己旗下所有业务员的数据 (主管级别及下属数据)
3.业务经理:可以查看自己的数据、自己旗下所有主管的数据及主管旗下所有业务员的数据 (经理级别及下属数据)
4.老板:查看所有数据 (全部数据)
三、产品设计