前言
在系统开发过程中,最常见的一个需求就是权限控制了,大到整个系统的用户权限的管理,小到某个状态下操作权限的判断。
其中最常见的操作就是权限的添加、删除、鉴权等,那么有什么简单的方法可以去控制这些权限呢?
对于复杂的权限控制可以采用 RBAC 方案,这里向大家推荐一种简单方法,来处理简单的权限控制,涉及二进制、8421码以及按位与等知识。
模拟需求
假设要对文章进行权限管理,分为新增、查看、修改三个权限。
方案设计
1、把权限对应的值设置如下
新增 | 查看 | 修改 |
---|---|---|
1 | 2 | 4 |
2、用户初始权限 authority 设置为 0,也即authority = 0;
。
3、赋予权限 a 时,先要判断用户是否已经有此权限,若无,则把 a 对应的值与 authority 相加作为用户的当前权限,也即 <