• 基于逻辑运算的简单权限系统(实现) JS 版


    作者: slightboy, 时间: 2006-10-17

    此篇为 JS 实现版本, 以前作已交待原理 故不在此多做解释

    如需原理介绍 请查看 VBS 版.

     首发于: http://cs.alienwave.cn/Topic/356.aspx

    var PermissionType =
    {
    Read : 1,
    Write : 2,
    Delete : 4
    }
    function PermissionSetComponent(value)
    {
    this.Value = value;
    	this.getRead = function()
    {
    return this.getValue(PermissionType.Read);
    }
    this.setRead = function(value)
    {
    this.setValue(PermissionType.Read, value);
    }
    this.Read = function()
    {
    if (arguments.length > 0)
    this.setValue(PermissionType.Read, arguments[0]);
    else
    return this.getValue(PermissionType.Read);
    }
    this.Write = function()
    {
    if (arguments.length > 0)
    this.setValue(PermissionType.Write, arguments[0]);
    else
    return this.getValue(PermissionType.Write);
    }
    this.Delete = function()
    {
    if (arguments.length > 0)
    this.setValue(PermissionType.Delete, arguments[0]);
    else
    return this.getValue(PermissionType.Delete);
    }
    this.getValue = function(permissionType)
    {
    return (this.Value & permissionType) == permissionType;
    }
    this.setValue = function(permissionType, value)
    {
    if (value)
    this.Value |= permissionType;
    else
    this.Value &= ~permissionType;
    }
    }
    var PermissionSet = new PermissionSetComponent(0);
    w("Read:");
    PermissionSet.Read(false);
    w(PermissionSet.Value +" "+ PermissionSet.Read());
    PermissionSet.Read(true);
    w(PermissionSet.Value +" "+ PermissionSet.Read());
    w("Write:");
    PermissionSet.Write(false);
    w(PermissionSet.Value +" "+ PermissionSet.Write());
    PermissionSet.Write(true);
    w(PermissionSet.Value +" "+ PermissionSet.Write());
    w("Delete:");
    PermissionSet.Delete(false);
    w(PermissionSet.Value +" "+ PermissionSet.Delete());
    PermissionSet.Delete(true);
    w(PermissionSet.Value +" "+ PermissionSet.Delete());
    function w(o)
    {
    Response.Write(o +"<br />");
    }
    

    注: 红色部分为 java 风格写法 不是本例所必须.

    只是做一个展示, 如果你比较喜欢 java 风格也可以选择这种写法.

  • 相关阅读:
    vue关于样式的绑定
    vue插口
    vue组件 父子 通讯
    vue实现翻页功能加高阶函数加购物车
    MySQL 索引面试总结
    phpstorm配置git并解决Terminal 中文乱码(Unicode 编码)的方法
    php 下载图片并打包成Zip格式压缩包
    MySQL5.6升级到5.7详细教程
    windows下安装vue教程
    一致性hash算法详解
  • 原文地址:https://www.cnblogs.com/slightboy/p/531938.html
Copyright © 2020-2023  润新知