Javaweb權(quán)限管理設(shè)計(jì)思路
權(quán)限管理業(yè)務(wù)界面如下:

數(shù)據(jù)庫方面需要建立六張表:
用戶表:user(用于存放用戶的相關(guān)屬性) id,登錄名,用戶姓名。。。

角色表:role(用于存放角色):roleId,roleName

用戶-角色表:user_role(記錄每一個(gè)用戶具有哪些菜單權(quán)限):userId,roleId
權(quán)限表:popedom(用于存放權(quán)限相關(guān)):mid,pid,name,url,icon,taeget,isparent,isMenu(左側(cè)權(quán)限列表是用z-tree實(shí)現(xiàn))

角色-權(quán)限表:role_popedom(記錄每一個(gè)用戶具有的角色權(quán)限):roleId,mid,pid
角色是關(guān)聯(lián)用戶和權(quán)限的橋梁
一、遍歷角色下拉菜單
List<Role> roleList = RoleService.findRoleList();
request.setAttribute("roleList",roleList);
二、查詢所有的權(quán)限,返回list集合,遍歷在頁面的權(quán)限分配上
List<Popedom> popedomList = RoleService.findPopedomList();
request.SetAttribute("poprdpmList",popedomList);
難點(diǎn)分析:1:一個(gè)權(quán)限占一個(gè)tr,父節(jié)點(diǎn)顯示在這個(gè)tr的右邊的td中,當(dāng)前父節(jié)點(diǎn)的所有的子節(jié)點(diǎn)顯示在左邊的一個(gè)td中。
2:復(fù)選框(選擇角色類型):選父子全選;取消父,子全取消;取消子:最后一個(gè)取消,父也取消。(jquery goselect())。
三、角色關(guān)聯(lián)權(quán)限
1.遍歷所有的權(quán)限 List<Popedom> list
2.獲取角色id,查詢角色權(quán)限關(guān)聯(lián)表,獲取當(dāng)前角色所有的功能權(quán)限,list<RolePopedom>
分析:
1.用list遍歷所有的角色權(quán)限,如果有則復(fù)選框被選中。
2.在popedom對(duì)象中添加一個(gè)flag
如果 flag = 1,則此時(shí)頁面復(fù)選框被選中
如果 flag = 2,則此時(shí)頁面復(fù)選框未被選中
3.設(shè)置flag的值
遍歷List<Popedom> list,獲取每一個(gè)功能權(quán)限,如果每個(gè)功能權(quán)限和當(dāng)前角色具有的權(quán)限相匹配,則flag=1,否則flag=2;
四:角色用戶的查詢(多對(duì)多)
1.角色關(guān)聯(lián)用戶,遍歷所有的用戶 List<User> list
2.獲取角色id,查詢角色表,獲取角色信息,role,
獲取當(dāng)前角色下有幾個(gè)用戶,獲取集合
遍歷List<User> list,獲取系統(tǒng)中每個(gè)用戶。
如果每個(gè)用戶和當(dāng)前角色具有的用戶匹配,則flag=1,否則=2
posted on 2018-03-09 08:26 笨兜兜 閱讀(13939) 評(píng)論(0) 收藏 舉報(bào)
浙公網(wǎng)安備 33010602011771號(hào)