指引网

当前位置: 主页 > 网页制作 > WEB开发 >

用户权限算法

来源:网络 作者:佚名 点击: 时间:2017-07-19 00:32
[摘要] script var Acc={ value:0,/* 缓存权限结果值 */ add:function(n){/* 添加一个权限 */ if(this.has(n))return this;/* 避免重复添加 */ return this.value+=1n,this; }, remove:function(n){/* 删除一个权限 */ if(!this.has(n))return this;/

<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>

------分隔线----------------------------