Easyui权限设置

Easyui权限设置

权限的目的:
是为了让不同的用户可以操作系统中不同资源
直接点说就是不同的用户可以看到左侧不同的菜单

**一个完整的权限的主要功能呢:

1、用户的增删改查(datagrid组件)
2、角色的增删改查(datagrid组件)
3、权限的菜单的增删改查(treegrid组件)
4、角色授权(tree控件/ztree)!角色所对应的权限,需要默认给指定的权限打钩,多选框。
5、给用户赋予角色,(用到多层组件嵌套)
*

**上一次我们实现了tree的树形菜单的布局,如下图所示。

在这里插入图片描述


接下来我们来实现一个普通的权限功能,根据自己的权限来查相应的数据,**

二星权限

思路:
二星权限设计(用户权限多对多)
执行数据库脚本
修改原有的实体类
建立实体类
创建dao
修改原有的dao
新增web的方法
新增登入界面,跳入前端树形菜单
**

上节课我们是通过当前节点的子ID,把它当成父ID去查所以的子节点,现在修改一下(menu)的menuId,比如把它默认的查改成001,看看有什么不一样


	public List<Map<String, Object>> listMap(Map<String, String[]> paMap, PageBean pageBean)
			throws InstantiationException, IllegalAccessException, SQLException {
		String sql = "select * from t_easyui_menu where true";
		String menuId = JsonUtils.getParamVal(paMap, "Menuid");
		if (StringUtils.isNotBlank(menuId)) {
			sql += " and parentid=" + menuId;
		} else {
			sql += " and parentid=001";
		}

**效果如下,相比之前,我们现在看到的只有一部分,只有001的子节点。
要控制展示的数据的话,主要就是控制传到后台的ID,从而让它访问不一样的内容不一样,

实现菜单权限的核心思想:就是控制用户登录后台所传递的menuId
在这里插入图片描述

接下来继续优化
首先先来看看我们的三张表
1.菜单表
在这里插入图片描述
2.用户表
在这里插入图片描述
3.关系表
在这里插入图片描述
然后继续优化
不是每个用户都只有一个权限,所以我们需要根据用户登录的id进行权限赋予。
代码演示

userDao

package com.HC.dao;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import com.HC.util.JsonBaseDao;
import com.HC.util.JsonUtils;
import com.HC.util.PageBean;
import com.HC.util.StringUtils;

public class UserDao extends JsonBaseDao {
	public List<Map<String,Object>> list(Map<String,String[]> pamap,PageBean pageBean) throws InstantiationException, IllegalAccessException, SQLException{
		String sql="select * from t_easyui_user_version2 where true";
		String uid=JsonUtils.getParamVal(pamap,"uid");
		String upwd=JsonUtils.getParamVal(pamap,"upwd");
		if(StringUtils.isNotBlank(uid)) {
			sql+=" and uid="+uid;
		}
		if(StringUtils.isNotBlank(upwd)) {
			sql+=" and upwd="+upwd;
		}
		return super.executeQuery(sql, pageBean);
	}
	/**
	 * 根据当前用户登录的ID去查询对应的所有菜单
	 * @param pamap
	 * @param pageBean
	 * @return
	 * @throws InstantiationException
	 * @throws IllegalAccessException
	 * @throws SQLException
	 */
	public List<Map<String,Object>> getMenuByUId(Map<String,String[]> pamap,PageBean pageBean) throws InstantiationException, IllegalAccessException, SQLException{ 
		String sql="select * from t_easyui_usermenu where true";
		String uid=JsonUtils.getParamVal(pamap,"uid");
		if(StringUtils.isNotBlank(uid)) {
			sql+=" and uid="+uid;
		}
		return super.executeQuery(sql, pageBean);
	}
}

UserAction

package com.HC.dao;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import com.HC.util.JsonBaseDao;
import com.HC.util.JsonUtils;
import com.HC.util.PageBean;
import com.HC.util.StringUtils;

public class UserDao extends JsonBaseDao {
	public List<Map<String,Object>> list(Map<String,String[]> pamap,PageBean pageBean) throws InstantiationException, IllegalAccessException, SQLException{
		String sql="select * from t_easyui_user_version2 where true";
		String uid=JsonUtils.getParamVal(pamap,"uid");
		String upwd=JsonUtils.getParamVal(pamap,"upwd");
		if(StringUtils.isNotBlank(uid)) {
			sql+=" and uid="+uid;
		}
		if(StringUtils.isNotBlank(upwd)) {
			sql+=" and upwd="+upwd;
		}
		return super.executeQuery(sql, pageBean);
	}
	/**
	 * 根据当前用户登录的ID去查询对应的所有菜单
	 * @param pamap
	 * @param pageBean
	 * @return
	 * @throws InstantiationException
	 * @throws IllegalAccessException
	 * @throws SQLException
	 */
	public List<Map<String,Object>> getMenuByUId(Map<String,String[]> pamap,PageBean pageBean) throws InstantiationException, IllegalAccessException, SQLException{ 
		String sql="select * from t_easyui_usermenu where true";
		String uid=JsonUtils.getParamVal(pamap,"uid");
		if(StringUtils.isNotBlank(uid)) {
			sql+=" and uid="+uid;
		}
		return super.executeQuery(sql, pageBean);
	}
}

index.js

$(function() {
	$('#tt').tree({    
	    url:'menuAction.action?methodName=menuTree&&Menuid='+$('#menuIds').val(),
	    onClick: function(node){
//			alert(node.text);  // 在用户点击的时候提示
			// add a new tab panel
	    	var content = '<iframe scrolling="no" frameborder="0" src="'+node.attributes.menuURL+'" width="99%" height="99%"></iframe>';
			if($('#menuTab').tabs('exists',node.text)){
				$('#menuTab').tabs('select',node.text);
			}else{
				$('#menuTab').tabs('add',{    
				    title:node.text,    
				    content:content,    
				    closable:true,   
				});  
			}
	    	
		}
	});  
});

登录界面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/userAction.action?methodName=login" method="post">
uid:<input type="text" name="uid"><br>
upwd:<input type="text" name="wpwd">
<input type="submit">


</form>
<span style="color: red">${msg}</span>
</body>
</html>

MVC.xml

<?xml version="1.0" encoding="UTF-8"?>
<config>
	<!-- <action path="/regAction" type="test.RegAction">
		<forward name="failed" path="/reg.jsp" redirect="false" />
		<forward name="success" path="/login.jsp" redirect="true" />
	</action> -->
	
	<action path="/menuAction" type="com.HC.web.MenuAction">
	</action>
	<action path="/userAction" type="com.HC.web.UserAction"> -->
		<forward name="index" path="/index.jsp" redirect="false" />
		<forward name="login" path="/login.jsp" redirect="false" />
		
	</action>
</config>

然后测试
001登录时
在这里插入图片描述
在这里插入图片描述

002登录时
在这里插入图片描述
003登录时
在这里插入图片描述

000登录时

在这里插入图片描述
当你输入不存在的用户登录时
在这里插入图片描述
本次权限的介绍就到此结束,谢谢观看!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值