之前分析了WebAPI的RESTful风格,而如果要做一个webapi,需要进行角色管理的时候,这个时候就需要考虑如何设计一个权限管理中心。
在没有经过指导的情况下,我们一般都会把权限直接绑定到用户上。也就是这个用户有权限1,2,3等。
但是这样就会出现一个问题,当我们新增一个角色之后,就又需要对那个角色进行绑定等,代码量的修改直接激增。
于是,在查阅了相关资料之后,看到了一个RBAC模型
RBAC全称为:Role-Based Access control,就是给用户分配角色,再给角色分配权限,系统由此来控制用户的权限。
新增用户只需给其分配角色即可,修改角色的权限,就完成批量更新用户的权限。
RBAC模型的分类
RBAC0
用户和角色是多对多的关系,一个用户可以拥有多个角色,一个角色可以被多个用户拥有。
RBAC1
RBAC0的基础上,增加角色分层。类似于企业管理,普通员工只能在部门经理的权限内进行权限使用。
RBAC2
RBAC0的基础上,增加了约束,对角色增加了强限制,对角色的权限增加了强限制,只能够干某事
RBAC3
结合RBAC1和RBAC2,增加分层的同时增加强约束
项目分层
一般对于中小项目,一般都会选择RBAC0,已经够用。
设计时
用户管理——>
1、每一家企业都会给员工分配一个账号,并且可以记录个人信息,比如姓名,并且可以更改账号的状态。
2、可以为用户分配多个角色。
角色管理——>
1、系统可以创建多个角色,可以更改角色的状态。
权限管理——>
通过软件设置该用户可以操作某些菜单功能,其他功能在页面要么隐藏,要么没权限操作。
一般设计的时候,都是对管理员对角色进行权限管理,一般设计如下