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 风格也可以选择这种写法.

  • 相关阅读:
    linux下查找文件中空行的行号
    JavaScript:jklyDB
    Chart:Amcharts
    Chart-template
    Miscellaneos:ISV
    杂项-模板
    Error-MVCr:找到了多个与 URL 匹配的控制器类型。如果多个控制器上的特性路由与请求的 URL 匹配,则可能会发生这种情况。
    Error-MVC:HTTP Error 500.19
    ASP.NET 网站管理工具
    HTML:Browser 对象
  • 原文地址:https://www.cnblogs.com/slightboy/p/531938.html
Copyright © 2011-2022 走看看