`
lufengdie
  • 浏览: 247832 次
  • 性别: 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  
呵呵
路过

相关推荐

    医药公司计算机管理系统操作人员权限分配审核表.docx

    本资源摘要信息是关于医药公司计算机管理系统操作人员权限分配审核表的知识点总结。该系统旨在确保医药公司的计算机管理系统操作人员的权限分配符合相关法规和质量管理要求。 标题解释 该标题"医药公司计算机管理...

    数据库例子_权限管理

    - `remark`:备注字段,可能包含关于权限分配的详细信息。 6. **角色对应的用户表(role_user)** - `role_id`:与角色表的外键关联,标识角色。 - `user_id`:与用户表的外键关联,表示用户所属的角色。 - `...

    服务器操作权限管理制度.doc

    其次,关于权限分配和口令管理,网络与信息中心需对不同用户进行严格的访问权限控制,并对关键设备设置复杂的口令,定期更换。同时,口令保护的责任由各单位信息安全员承担,一旦出现因口令保护不当引发的问题,信息...

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

    2. 权限分配:角色管理页面允许管理员定义角色的权限范围。权限不仅包括导航菜单,还涵盖了页面内的各种操作按钮。例如,如果用户未被分配“添加菜单”的权限,他们虽然可以进入菜单管理页面,但“添加菜单”按钮会...

    电子政务-汽车的权限分配方法、存储介质、电子设备及汽车.zip

    在电子政务领域,汽车行业的数字化进程正在加速,其中涉及到的关键技术包括权限分配方法、存储介质的应用以及电子设备的集成。这些元素共同构建了智能汽车的信息安全与管理框架。以下是关于这些知识点的详细阐述: ...

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

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

    i6_intfi_02_00004进销存管理操作人员权限分配表.doc

    "i6_intfi_02_00004进销存管理操作人员权限分配表.doc"文件显然提供了关于如何在i6系统中进行这一管理的具体细节,特别是与人员权限相关的设置。下面我们将深入探讨进销存管理系统以及操作人员权限分配的关键知识点...

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

    "关于用户权限的另一种用法,分配权限不再困难"这个标题揭示了一个关键的问题:如何简化权限分配的过程,使得即使对于初学者来说也更加易懂。权限管理是确保数据安全,防止未授权访问的关键手段,而SQL和编程中的...

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

    通过系统管理、用户权限分配以及程序代码的调整,可以实现对数据库表中特定记录的访问控制,满足不同用户的访问需求。这种做法在企业级应用中非常常见,尤其在需要严格数据隔离的场景下,如财务系统、医疗系统等。

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

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

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

    文档"关于权限控制1.doc"、"关于权限控制2.doc"和"关于权限控制3.doc"很可能深入探讨了这些概念,并可能包含具体的代码示例和最佳实践。通过学习这些文档,你可以更好地理解如何在实际项目中实施有效的权限控制,以...

    权限项目源码很OK,下下来就知道

    这个标题暗示我们正在讨论的是一个关于权限管理系统的源代码项目,它可能是一个软件或者Web应用,用于控制和管理用户对系统资源的访问权限。"很OK"表明这个项目在功能、性能或者易用性上表现良好,是一个成熟的解决...

    SAP 权限设定培训资料

    - **活动组的分配原则**:讲解了如何将不同的活动组分配给特定的角色或用户,以实现灵活而精确的权限控制。 #### 七、案例分析:三系统环境下的安全策略 通过一个具体的案例,展示了在一个包含三个系统的环境中,...

    J2EE综合--关于权限设计的详细探讨

    角色表存储角色信息,用户表存储用户信息,角色-用户对应表用于建立用户和角色的关系,限制内容列表记录受权限控制的对象,权限列表列出所有权限,而权限-角色-用户对应表则定义角色和用户的具体权限分配。...

    asp.net多级权限管理

    在C#编程语言中,权限分配是通过角色(Roles)和用户(Users)管理来实现的。开发者可以创建自定义的角色,如管理员、普通用户、编辑等,并将特定的权限分配给这些角色。用户则可以被分配到不同的角色中,从而继承该...

    用户权限,用于基本用户权限的项目,比较好用

    3. 权限分配:为每个用户或角色分配读取、写入、执行等操作权限,确保只有授权的用户才能执行特定任务。 4. 访问控制列表(ACL):详细列出哪些用户或组可以访问哪些资源,如文件、目录、数据库记录等。 5. 日志和...

    mysql 新增、删除用户和权限分配

    在MySQL数据库管理中,用户账户的创建、删除以及权限分配是至关重要的操作,这关乎到数据库的安全性和数据的访问控制。下面将详细讲解如何通过命令行来执行这些操作。 1. **新增用户** 新增用户是通过`INSERT`语句...

    jQuery权限树插件,基于Bootstrap风格

    这种插件在Web应用中特别常见,尤其适用于用户角色分配、资源管理、菜单导航等场景,因为它们能够以直观、可交互的方式展示层次化的数据。 Bootstrap是Twitter推出的一个开源的用于前端开发的工具集,它的设计简洁...

    ThinkPHP-4-权限管理

    权限分配涉及表单展示,用户在`RoleController/fenpei`方法中选择权限,表单数据在二期制作中通过`saveAuth()`等方法更新到数据库。 总结关键知识点: 1. 命名空间的使用,包括创建、引入和别名设定。 2. ThinkPHP...

Global site tag (gtag.js) - Google Analytics