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

本文介绍了一种基于8421法则的简单权限控制系统,适用于处理文章的新增、查看、修改权限。通过二进制表示权限,结合按位与操作进行权限判断,具有良好的灵活性,可以方便地添加新的权限。同时,这种方案也可扩展到叠加状态的判断场景。
最低0.47元/天 解锁文章
1041

被折叠的 条评论
为什么被折叠?



