博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
角色权限etmvc+jQuery EasyUI+combobox多值操作实现角色授权
阅读量:5064 次
发布时间:2019-06-12

本文共 2873 字,大约阅读时间需要 9 分钟。

题记:写这篇博客要主是加深自己对角色权限的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢。

    基于角色的权限管理一般有5张表形成,如下图,这里我们要实现对角色role停止授权操作,简略来说就是要对rolemenu停止添加操作,这里前端主要用easyui-combobox来实现权限多选。

    角色和权限

    整体思绪是先初始化combobox,绑定所有的权限;然后根据以后的角色获得该角色已经拥有的权限,设置combobox选中这些权限;最后修改好权限了,获得combobox的选中值发送到后端停止保存。

    1、控件初始化

    先是前端html,设置combobox的value是角色id,text是角色name,代码如下:

角色名称:
角色权限:

    后端获得系统所有的权限,也就是menu表的记载,代码如下:

public JsonView getAllMenus() throws Exception{		List
menus = Menu.findAll(Menu.class); return new JsonView(menus); }

    2、获得角色以后拥有的权限

    前端JS脚本获得以后角色role的id发送到后端获得该角色拥有的权限的id数组,如下:

function newAuthorize(){	var row = grid.datagrid('getSelected');	if (row){		win1.window('open');		form1.form('load',row);		$.post('/ciccpsMember/role/getMenusByRid', { id:row.id},		        function(result) {		             if (result) {		            	 //获得权限menu的id		            	 var t=[];		            	 jsonList=result.rows;		            	 for(var i=0;i
    每日一道理
灯,带有一种明亮的光,每当深夜来临,是它陪伴着你,如此默默无闻。它是平凡的,外表华丽与否,那都是一样的,珍珠点缀,水晶加饰的灯它只能用以装饰,来满足人们的虚荣心,比起这,普普通通的日光灯是幸运的,因为它照明的本性没有改变,如同生活中的一部分人平平凡凡却实实在在。

    后端根据前端传来的role的id查询数据库获得对应的权限id返回给客户端,代码如下:

//根据角色返回权限id	public JsonView getMenusByRid(Integer id) throws Exception {		List
rolemenuss = Rolemenus.findAll(Rolemenus.class, "rid =?", new Object[]{id}); //根据角色id在rolemenu表中获得权限id //构造JSON用的数据结构并返回JSON视图 Map
result = new HashMap
(); result.put("rows", rolemenuss); return new JsonView(result); }

    3、提交修改后的角色权限

    前端JS脚本获得combobox选中的值发送到后端,记着对combobox值停止escape编码,要以1%2C2%2C3的形式传送,否则到后端就剩一个值了,代码如下:

function authorize(){	var id=$('#id').attr("value");	var r = $('#roleRight').combobox('getValues');	var rr=escape(r);	//$.messager.alert('错误',id+'ddd'+rr,'error');	$.post('/ciccpsMember/role/authorize', { id:id,rr:rr },	        function(result) {	             if (result.success) {					win1.window('close');					$.messager.show({				        title:'提示', 				        msg:'角色授权成功。'			        });	             } else {	               $.messager.alert('错误',result.msg,'error');	             }	     },'json');}

    后端获得前端传过来的值,停止数据库操作,代码如下:

/**	 * 授权操作	 */	public JsonView authorize(Integer id,String rr) throws Exception {				//删除旧的		Rolemenus.destroyAll(Rolemenus.class, "rid =?", new Object[]{id});				//追加新的		String[] ary = rr.split("%2C");		Rolemenus rm=null;		for(String item: ary){			//System.out.println(item);			rm=new Rolemenus();			rm.setRid(id);			rm.setMuid(Integer.parseInt(item));			rm.save();					}		return new JsonView("success:true");	}

    至此,角色授权就实现了,主要有两点要注意,一是对combobox赋多个值的问题,另一个就是获得combobox多个值(1,2,3)后要停止escape编码后再传到后端。效果图如下:

    角色和权限

    

文章结束给大家分享下程序员的一些笑话语录: 看新闻说中国输入法全球第一!领先了又如何?西方文字根本不需要输入法。一点可比性都没有。

--------------------------------- 原创文章 By

角色和权限
---------------------------------

转载于:https://www.cnblogs.com/jiangu66/archive/2013/05/24/3097794.html

你可能感兴趣的文章
PHP结合MYSQL记录结果分页呈现(比较实用)
查看>>
Mysql支持的数据类型
查看>>
openSuse beginner
查看>>
Codeforces 620E(线段树+dfs序+状态压缩)
查看>>
Windows7中双击py文件运行程序
查看>>
Market entry case
查看>>
css3动画属性
查看>>
Mongodb 基本命令
查看>>
控制文件的备份与恢复
查看>>
PHP的SQL注入技术实现以及预防措施
查看>>
软件目录结构规范
查看>>
mysqladmin
查看>>
解决 No Entity Framework provider found for the ADO.NET provider
查看>>
设置虚拟机虚拟机中fedora上网配置-bridge连接方式(图解)
查看>>
[置顶] Android仿人人客户端(v5.7.1)——人人授权访问界面
查看>>
Eclipse 调试的时候Tomcat报错启动不了
查看>>
ES6内置方法find 和 filter的区别在哪
查看>>
Android实现 ScrollView + ListView无滚动条滚动
查看>>
java学习笔记之String类
查看>>
UVA 11082 Matrix Decompressing 矩阵解压(最大流,经典)
查看>>