1. 程式人生 > >easyui Tree角色許可權選單

easyui Tree角色許可權選單

既然是角色許可權選單那麼首先就要知道什麼是角色?

所謂角色:指的是系統中的許可權集合,簡單的說就是什麼功能給他用什麼功能不給

使用者登入之後取到使用者角色的id到角色許可權中間表去撈取許可權用來顯示選單

 

三色角色許可權

 

	/**
	 * 
	* @Title: login1
	* @Description: (登入的方法)
	* @param map 使用者名稱和密碼的map集合
	* @param pageBean  分頁類 這裡不分頁所以不使用
	* @return
	* @throws Exception
	* @return List<Map<String,Object>>
	 */
	public List<Map<String, Object>> login3(Map<String, String[]> map,PageBean pageBean) throws Exception{
		String uid=JsonUtils.getParamvalue(map, "uid");
		String upwd=JsonUtils.getParamvalue(map,"upwd");
		StringBuilder sb=new StringBuilder();
		sb.append("select * from t_easyui_user_version3");
		sb.append(" where  uid='"+uid+"'  and  upwd='"+upwd+"' ");	
		return super.executeQuery(pageBean, sb.toString());
	}   

 

 

	/**
	 * 
	* @Title: findrole
	* @Description: (查詢對應角色表)
	* @param rid  角色id
	* @return
	* @return List<Map<String,Object>>
	 * @throws Exception 
	 */
	public List<Map<String, Object>>  findrole(String rid) throws Exception{
		StringBuilder sb=new StringBuilder();
		sb.append("select * from tb_easyui_role");
		sb.append(" where  rid='"+rid+"'");	
		return super.executeQuery(null, sb.toString());
	}

將前面的方法綜合使用,查詢的方法在上一篇部落格有講到

/**
	 * 
	 * @Title: login3
	 * @Description: (三星角色許可權選單)
	 * @param request
	 * @param response
	 * @return
	 * @return ActionForward
	 */
	public ActionForward login3(HttpServletRequest request, HttpServletResponse response) {
		try {
			/**
			 * 登入的方法
			 */
			List<Map<String, Object>> user = ud.login3(request.getParameterMap(), null);
			Map<String, Object> map = user.get(0);
			if (map != null) {
				/**
				 * 獲取到角色id
				 */
				String rid = (String) map.get("rid");
				Map<String, Object> map3 = new HashMap<>();
				map3.put("rid", rid);
				/**
				 * 查詢 角色所有的許可權
				 * 將許可權id拼接使用in關鍵字查詢
				 */
				List<Map<String, Object>> menuids = ud.getroleMenuids(map3);
				StringBuilder sb = new StringBuilder();
				for (Map<String, Object> map2 : menuids) {
					sb.append(",").append(map2.get("MenuId"));
				}
				request.setAttribute("Menuid", sb.toString().substring(1));
			}

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return new ActionForward(true, "menu.jsp");
	}

在登入頁面請求此方法,然後將此方法獲取到的許可權id作為條件去請求查詢方法

$(function(){
	$('#MenuTree').tree({    
	    url:'menuaction.action?methodName=MenuTreeList&Menuid='+$("#Menuid").val() 
	    	,onClick: function(node){
	    		if($('#Menutab').tabs('exists',node.text)){
	    			$('#Menutab').tabs('select',node.text)
	    		}else{
	    		$('#Menutab').tabs('add',{    
	    		    title:node.text,    
	    		    content:'<iframe scrolling="no" frameborder="0" src="'+node.attributes.menuUrl+'" width="99%" height="99%"></iframe>',    
	    		    closable:true,      
	    		});  }

	    	}
	}); 
	
})

使用高階管理員登入

效果

普通使用者

效果為