角色管理里面不光有角色的新增和删除,还有给角色赋权限。赋权限的时候不光有模块的权限,还有模块下各个按钮的权限。
1、角色管理界面
这一块的代码非常简单,显示如下图所示:
2、角色新增和修改界面
这里需要同时显示该系统所有的模块及按钮,界面展示如下图所示:
显示所有模块和按钮
<c:forEach items="${listModule }" var="sysModule" varStatus="st">
<c:if test="${sysModule.parentId eq 1 }">
<div class="widget-box">
<!-- #section:custom/widget-box.options -->
<div class="widget-header">
<h4 class="widget-title">
<label> <input name="module" class="ace father" type="checkbox"
id="mod_${sysModule.id }"
value="${sysModule.id }"/> <span class="lbl"> <i
class="ace-icon fa fa-pencil-square-o"></i> ${sysModule.name }</span>
</label>
</h4>
<div class="widget-toolbar">
<a href="#" data-action="collapse"> <i
class="ace-icon fa fa-chevron-up"></i>
</a>
</div>
</div>
<div class="widget-body">
<div class="widget-main">
<c:forEach items="${listModule }" var="secModule" varStatus="st">
<c:if test="${sysModule.id eq secModule.parentId }">
<label> <input name="module" id="mod_${secModule.id }"
type="checkbox" value="${secModule.id }"
class="ace children"/> <span class="lbl"> <i
class="ace-icon fa fa-pencil-square-o"></i> ${secModule.name}</span>
</label>
<c:forEach items="${listFunction }" var="sysFunction"
varStatus="st">
<c:if test="${sysFunction.parentId eq secModule.id }">
<label class="checkbox inline" style="color: blue"><input
name="function" id="function_${sysFunction.id }"
type="checkbox" value="${sysFunction.id }"
class="ace children"/>
<span class="lbl"> <i
class="ace-icon fa fa-align-justify"></i> ${sysFunction.name }</span>
</label>
</c:if>
</c:forEach>
<br/>
</c:if>
</c:forEach>
</div>
</div>
</div>
</c:if>
</c:forEach>
这一块的难点是如何多级显示所有模块和按钮,原理是定义一个ListModule,所有的功能模块,再定义ListFunction,所有的按钮,先循环ListModule,显示一级的,再循环ListModule,显示该一级下的二级模块,循环ListFucntion,显示所有按钮。