角色权限判断,这应该是大部分应用都有的功能,那么如何进行权限判断?
这里说下我们用的思路,可能会比较low,各位看官别笑。
打个比方,我现在有A,B,C,D四个功能。要对某个账户是否具有这些功能权限做判断。
我们有个list,里面存放着这个账户所有的权限。(list从哪来?当然是后台请求回来啊!)
A功能对应的权限是=>0,以此类推B=>1,C=>2,D=>3这样子。
那么如果我有一个账号拥有所有权限,list就是【0,1,2,3】,如果没有B权限就是【0,2,3,4】这样子,相信大家都应该明白我要表达的意思了。
那么要判断是否拥有某个权限,这时候肯定就会说,遍历一下list不就知道了?那如果权限比较多呢?而且你不觉得这样更low么=。=
所以这个时候,我们可以使用位运算打成这个目的:
先说我们用来判断的方法:
1 | //判断是否存在权限,permission是所有权限展示中的某个权限,只有一个&,不是两个,别搞错了 |
再定义一个包含了所有权限的声明
1 | //所有权限列表展示 |
在我们和后台请求拿到某个角色所包含的list的时候,对list做如下操作