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

时间:2021-05-18

作者:slightboy,时间:2006-10-17
此篇为JS实现版本,以前作已交待原理故不在此多做解释
如需原理介绍请查看VBS版.
varPermissionType=
{
Read:1,
Write:2,
Delete:4
}
functionPermissionSetComponent(value)
{
this.Value=value;
this.getRead=function()
{
returnthis.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
returnthis.getValue(PermissionType.Read);
}
this.Write=function()
{
if(arguments.length>0)
this.setValue(PermissionType.Write,arguments[0]);
else
returnthis.getValue(PermissionType.Write);
}
this.Delete=function()
{
if(arguments.length>0)
this.setValue(PermissionType.Delete,arguments[0]);
else
returnthis.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;
}
}
varPermissionSet=newPermissionSetComponent(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());
functionw(o)
{
Response.Write(o+"<br/>");
}
注:红色部分为java风格写法不是本例所必须.
只是做一个展示,如果你比较喜欢java风格也可以选择这种写法.

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章