1. 云栖社区>
  2. 技术资料>
  3. 正文

用户权限算法

作者:用户 来源:互联网 时间:2016-08-10 12:33:36

权限算法缓存this用户

用户权限算法 - 摘要: 本文讲的是用户权限算法, <script> var Acc={     value:0,/* 缓存权限结果值 */     add:function(n){/* 添加一个权限 */         if(this.has(n))return t

<script>
var Acc={
    value:0,/* 缓存权限结果值 */
    add:function(n){/* 添加一个权限 */
        if(this.has(n))return this;/* 避免重复添加 */
       return  this.value+=1<<n,this;
    },
    remove:function(n){/* 删除一个权限 */
        if(!this.has(n))return this;/* 不存在此权限时跳过 */
        return this.value-=1<<n,this;
    },
    has:function(opID){/* 判断是否包含指定权限 */
        return (this.value&(1<<opID))==1<<opID;
    },
    all:function(){/* 列举全部权限 */
        for(var i=0, arr=[];i<this.value;i++){
            if(1<<i>this.value)break;/* 中断不存在的ID */
            if(this.has(i))arr.push(i);
        };
        return arr;
    }
}
var $=Acc;
var ps='浏览,回复,编辑,屏蔽,删除,添加,管理,申诉,举报,其它'.split(',');
$.add(0);//添加浏览权限
$.add(3);//添加屏蔽权限
$.add(4);//添加删除权限
$.add(6);//添加管理权限
$.remove(0);//移除浏览权限
$.remove(3);//移除屏蔽权限
//$.remove(4);//移除删除权限
var r=$.all(), rc=[];
for(var i=0;i<r.length;i++)
{//把权限ID转换为字符串
    rc.push(ps[r[i]]||'其它')
}
alert('您拥有以下权限:nn'+rc.join('nn'));
 //-->
</script>

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索权限 , 算法 , 缓存 , this 用户 权限算法、1 2 4 8 权限算法、linux权限算法、权限拆分算法、权限控制算法,以便于您获取更多的相关知识。

稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一

6款热门基础云产品6个月免费体验;2款产品1年体验;1款产品2年体验

弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

开发者常用软件,超百款实用软件一站式提供