Easyui权限设计

权限树

所谓权限:指的是系统中的资源,资源包括菜单资源(学习情况报表,账号审核...)以及按钮资源
所谓角色:指的是系统中的权限集合(每一个角色对应着哪些权限集合)

按钮资源
现象:同一个菜单,不同的人能看到的按钮还不一样。

1、一星权限设计(用户权限多对一)
?执行数据库脚本sql
?建立实体类
?创建dao方法
?Webservlet层创建
?展示对应的树形菜单

实现思路:通过账号和密码查询 是为了获取菜单的id 获取到里面的menuid后 可加载对应的菜单或以及子菜单

2、二星权限设计(用户权限多对多)
?执行数据库脚本sql
?修改原有的实体类
?建立实体类
?创建dao方法
?再写一个权限集合表方法
?新增webservlet的方法
?新增登入界面,跳入前端树形菜单展示每个对应的权限集合菜单

实现思路:用户查询登陆表 有数据代表已注册 通过uid 查到中间表(一个uid查中间表的方法) 获取到一个权限集合 对应多个数据 再进行遍历uid查到的集合  然后拼接每一个map集合的menuid(这个menuid的集合就是那些数字 方法用in可得到多组父子关系)

部分获取集合代码:

public String login2(HttpServletRequest req,HttpServletResponse resp) {
		try {
			//调方法查询id跟密码的用户
			List<Map<String, Object>> login1 = this.userdao.login2(req.getParameterMap(), null);
			//拿到查询到的这个用户
			Map<String, Object> user = login1.get(0);
			System.out.println("++++"+user);
			if(user!=null) {//这个用户不为空
				Map<String, String[]> map=new HashMap<>();//写一个map拿值集合
				map.put("uid",new String[] {(String) user.get("uid")});//拿到这个用户的uid
				//获取中间表信息 通过uid给下面方法就得到这个uid查到的所有menuid
				List<Map<String, Object>> userMenu = this.userdao.userMenu(map, null);
				StringBuffer sb=new StringBuffer();
				for (Map<String, Object> map2 : userMenu) {//再遍历uid查到的集合
					sb.append(",").append(map2.get("menuId"));//拼接每一个map集合里面的menuid
				}
				req.setAttribute("menuId",sb.toString().substring(1));//最后把拿到的这个menuid集合传出去 外面根据id可查多组父子关系
			}
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();

3、二星权限设计(用户权限一对多)

实现思路:用户查询登陆表 有数据代表已注册 拿到角色的id 通过权限中间表拿到权限集合 最后用in关键字查出多组父子关系

如同所示:

123

以上是三种权限设计的简单思路 可自行去探索!

猜你喜欢

转载自blog.csdn.net/qq_43227109/article/details/82886489