zoukankan      html  css  js  c++  java
  • 基于逻辑运算的简单权限系统(实现) 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 风格也可以选择这种写法.

  • 相关阅读:
    《高级软件测试》web测试实践--12月30日记录
    JUnit单元测试遇到的问题及解决思路
    静态代码检查报告
    召开小组评审会
    小组评审会前准备
    软工1701班06组白盒测试实践任务分配
    《高级软件测试》11.30.学习编写自动化测试脚本
    《高级软件测试》11.29.学习编写自动化测试脚本
    新博客
    Java中的NIO学习(一、缓冲区与Buffer)
  • 原文地址:https://www.cnblogs.com/slightboy/p/531938.html
Copyright © 2011-2022 走看看