`
lufengdie
  • 浏览: 246136 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

关于权限分配

阅读更多

在项目中遇到一个问题: 需要对不同权限的用户进行管理、有权限才可以进行相关的操作, 
                     如对文件的增、删、改、查


1.在**tag.java中添加代码,从后台将权限编号交给前台


SystemUserVO systemUservo=(SystemUserVO)this.getAttribute("userLoginVO");
			this.appendMessage("<modules>"+systemUservo.getModules()+"</modules>");
			this.appendMessage("<operations>"+systemUservo.getOperations()+"</operations>"); 


1)
SystemUserVO systemUservo=(SystemUserVO)this.getAttribute("userLoginVO");
此条语句获得当前登录用户的对象

2)this.appendMessage("<modules>"+systemUservo.getModules()+"</modules>");
将模块名利用标签交给前台

3)this.appendMessage("<operations>"+systemUservo.getOperations()+"</operations>");
将权限对象利用标签交给前台

**tag.java 是将数据添加到 标签里,然后在**.xsl文件中就可以解析到数据



2. 从前台接收后台传过来的 模块和权限对象


<input type="hidden" id="modules" name="modules" value="{modules}"/>
<input type="hidden" id="operations" name="operations" value="{operations}"/>



3. 将页面中需要限制的功能按键 规范成统一的标识

如: 

					                   <input type="image" name="fun_2_image_update" id="rpt_YBSX_ctl00_ib_YBXG" title="修改" src="../../../images/xiugai.gif" align="absmiddle" style="border-width:0px;" onclick="updateData('{ybMode}',{id},'yb',{ybEventID})" /><xsl:text> </xsl:text>
                                               <input type="image" name="fun_5_image_delete" id="rpt_YBSX_ctl00_ib_YBSC" title="删除" src="../../../images/new_delete.gif" align="absmiddle"  style="border-width:0px;" onclick="return operateInf({id},{ybEventID},'{ybMode}')" />

<a id="ftn_1_img_add" name="fun_1_img_add"  href="javascript:popWindow('yb')" style="display:inline-block;height:16px;"><img id="fun_1_img_add" src="../../../images/notify_new.gif" align="absMiddle" border="0" /><strong>新增</strong></a>



其中: name 是需要统一规范的部分,应 规范成" fun_权限id_按钮类型_按钮功能"
     fun_5_image_delete表示操作按钮以图片显示,数据库操作权限id对应的为5,改操作为删除。
      fun_1_img_add 表示改操作为添加按钮,对应权限id为1,以图片加文字显示
      fun_6_btn_save 标识改操作为保存按钮,对应权限为6,以button方式显示




4. 在js中进行判断, 当前用户是否有相应的权限。

function checkOperation(){
		var modules=document.getElementById("modules").value;
		
		var operations=document.getElementById("operations").value;
		
				
		var inputs=document.getElementsByTagName("input");
		
		var imgs=document.getElementsByTagName("img");
	
		
		var len=inputs.length+imgs.length;
		var src=new Array(len);
		for(var z=0;z<xsl:text>&lt;</xsl:text>inputs.length;z++){
			src[z]=inputs[z];
		}
		for(var z=0;z<xsl:text>&lt;</xsl:text>imgs.length;z++){
			src[inputs.length+z]=imgs[z];
		}
		
		    for(var i=0;i <xsl:text>&lt;</xsl:text> src.length;++i)
		    {
		        if(src[i].name.indexOf("fun_") != -1)
		        {
		        	var opeIds=src[i].name.split("_")[1];
		        	var nums=opeIds.split(",");

		        	for(var j=0;j <xsl:text>&lt;</xsl:text> nums.length;j++){
		        		if(operations.indexOf(nums[j]) &lt; 0){
		        			if(src[i].name.indexOf("_btn_")!=-1){
		        				src[i].disabled="disabled";
		        			}

		        			if(src[i].name.indexOf("_img_")!=-1){
		        				src[i].style.display="none";
		        			}
								
		        			break;
		        		}
		        	}   
		        }
		    }			    	    
	}




var modules=document.getElementById("modules").value;
var operations=document.getElementById("operations").value;
分别获得 modules和operations的值并交给一个 js对象。

var inputs=document.getElementsByTagName("input");
var imgs=document.getElementsByTagName("a");
分别获得 链接和input的值并各交给一个对象

var len=inputs.length+imgs.length;
var src=new Array(len);
for(var z=0;z<xsl:text>&lt;</xsl:text>inputs.length;z++){
src[z]=inputs[z];
}
for(var z=0;z<xsl:text>&lt;</xsl:text>imgs.length;z++){
src[inputs.length+z]=imgs[z];
}
将两个对象拼接成一个数组。

if(src[i].name.indexOf("fun_") != -1)
判断:当按钮name的值中是否有"fun_"字符

        var opeIds=src[i].name.split("_")[1];
        var nums=opeIds.split(",");
取出按钮中的权限id

if(operations.indexOf(nums[j]) &lt; 0){

判断 当前页面按钮中的权限id 存在与登录用户权限中

        			if(src[i].name.indexOf("_btn_")!=-1){
		        			 
		        				src[i].disabled="disabled";
		        			}
 

如果按钮方式为 button , 则让其失效, 看上去按钮变成灰色

if(src[i].name.indexOf("_image_")!=-1){
      src[i].style.display="none";
}

如果按钮显示方式为 image ,则让图片消失

        if(src[i].name.indexOf("_img_")!=-1){
               
        src[i].href="#";
        src[i].disabled="disabled";
        }
如果按钮显示方式为 链接加 文字, 则让用户按下按钮时 链接指向自身,并将图片设置为不可用

5. 在页面加载是 调用 js 权限验证方法

<body onload="checkOperation()">


基本大概就是这样了···

不谢、、


分享到:
评论
1 楼 madmork 2012-11-08  
呵呵
路过

相关推荐

    管理员动态分配用户权限

    关于动态权限的分配,一个管理员可以给用户分配权限,不同权限的用户可以进行的操作也不同。

    thinkphp自定义权限管理之名称判断方法

    权限管理,就是给不同的用户分配不同的权限。当用户登录或者操作时候进行判断,来阻止用户进行权限以外的操作。本次讲的是当用户登录一刻,只显示权限开启的内容。...关于权限分配列表,因为权限板块的不同,我们需要

    权限分配Shiro案例(推荐)

    一个简单的物流项目,导入后可能需要进行微调,这里用的是jdk1.7,是一个pom工程。把项目进行跑一遍,需要的地方打个断点,关于shiro框架就清楚了

    深入解析yii权限分级式访问控制的实现(非RBAC法)

    yii framework 提供了2套权限访问系统,一套是简单的filter(过滤器)模式,另一套是复杂全面的RBAC模式,我这里要讲的是第一套(因为我也刚刚学到...) 关于权限分配的文件大多在controllers里,比如打开UserControl

    关于菜单与权限控制的说明1

    关于权限的控制如何实现,在UserRealm类中,包含认证和授权两部分,认证部分会在用户登录时,介入判断,认证通过后,生成一个ActiveUser对象,然后通过

    关于给用户分配资源(数据库表)中某条记录的操作权限问题-行控制

    关于给用户分配资源(数据库表)中某条记录的操作权限问题-行控制

    关于系统权限控制,特别是角色分配

    如果你对系统的权限控制不了解,或许这文档(3个WORD)对你有帮助,有代码诠释。

    关于用户权限的令一种用法,分配权限不再困难。

    用户的权限对初学者来说,是个难题,SQL语句不好理解,代码不知怎么写,现在吧我的和大家分享。

    基于php权限分配的实现代码

    小编今天写下关于后台管理员权限的分配自己的思路想法复制代码 代码如下:&lt;?php /**reader * 小编的思想比较简单实现的功能 * 首先每个栏目的id号是固定不变的 然后 总管理员 * 创建个管理员之后 给该管理员...

    关于web spring acegi 权限配置xml

    如何定义spring security的安全认证框架,对url和系统类method进行过滤以及权限分配和控制

    基于角色的权限控制

    实现了根据人物角色去控制权限,一个人可以同时拥有多个角色,一个角色可以同时拥有多个模块的权限,有人员管理,角色管理,角色权限分配,用户角色分配等等功能

    BOS V6.3开发指南_权限

    1. 简介 1.1. 目的 ...3.6. 关于菜单的权限过滤 3.7. 权限项组别 3.8. 同步权限项 3.9. 版本差异 4. 功能权限 4.1. 功能方面 4.1.1. 设置权限项 4.1.2. 分配权限项 4.2. 技术方面 5 普通数据权限

    关于web spring acegi 权限配置xml(补充)

    如何定义spring security的安全认证框架,对url和系统类method进行过滤以及权限分配和控制(补充) 关于DataBaseFilterInvocationDefinitionSource.java的实现

    B/S权限管理系统的一些算法

    B/S权限管理系统的一些算法 JSP在页面间如何传递数组 servlet的2种重定向方法 在框架中指定页面刷新 权限分配页面 关于try-catch-finally 递归查询 传递页面对象的值(如text.value) 对...

    解决Java提示正在尝试分配更低的访问权限问题

    在本篇文章里小编给大家整理的是关于解决Java提示正在尝试分配更低的访问权限问题的相关方法内容,有需要的朋友们跟着参考学习下。

    数据库权限设计与实现.doc

    可以对"组"进行权限分配。对于一个大企业的业务系统来说,如果要求管理员为其下 员工逐一分配系统操作权限的话,是件耗时且不够方便的事情。所以,系统中就提 出了对"组"进行操作的概念,将权限一致的人员编入同一...

    java用户角色权限设计.doc

    可以对"组"进行权限分配.对于一个大企业的业务系统来说,如果要求管理员为其下员工 逐一分配系统操作权限的话,是件耗时且不够方便的事情.所以,系统中就提出了对"组"进 行操作的概念,将权限一致的人员编入同一组,然后...

    java用户角色权限设计.doc.doc

    所以,系统中就提出了对 "组"进行操作的概念,将权限一致的人员编入同一组,然后对该组进行权限分配。 权限管理系统应该是可扩展的。它应该可以加入到任何带有权限管理功能的系统中。就 像是组件一样的可以被不断的...

    农业气象管理平台agriculture-master.zip

    农业气象管理平台 后台采用ssm 前端采用layui 基本实现了关于数据的增删查改 属于入门的实践项目 ...3.功能有用户登录注册,简单权限分配,地区作物信息记录,天气信息记录,市县级作物分配、echart静态信息显示等功能

Global site tag (gtag.js) - Google Analytics