Jquery、Struts2简单的权限设计

做一个简单的 非RBAC模式的权限设计,用户只基于角色, 用户所具有的权限全部来源于其所属的角色。用户属于单角色,角色和模块为多对多的关系。

模块表结构如下:

前台展现从后台数据库配置出来的菜单代码通过iterator实现 先展现一级菜单的节点,再把所属的二级菜单的节点嵌到每个对应的一级菜单内:

其中moduleParentList,为数据库中一级菜单,moduleChildList为二级菜单,moduleCode为菜单编号

如 1级菜单为A ,2级菜单的编码都为A1,A2,A3....

则可用2级菜单编码.startsWith(一级菜单编码)  的形式展现在界面

<s:iterator value="moduleParentList">
				<div class="iteam">
					<h3><s:property value='moduleName'/></h3>
					<div class="iteamList">
						<s:iterator value="moduleChildList">
							<s:if test="moduleChildCode.startsWith(moduleCode)">
								<div class="check">
									<label><input  id = "cb_sys_user" name="cb_sys_user" type="checkbox" value="<s:property value='moduleChildCode'/>" /></label><label><s:property value='moduleChildName'/></label>							
								</div>		
							</s:if>											
						</s:iterator>	
					</div>
				</div>		
			</s:iterator>
			<s:iterator value="moduleSelectedList">
				<script language="javascript">$("input[name=cb_sys_user][value=<s:property value='moduleCode'/>]").attr("checked",true);</script>
			</s:iterator>
均为一个checkbox


在提交Action的时候,定义selectedValue记录勾选的权限,$("input"[name=]:checked:checked).each循环每个checkBox控件,读取控件的value(编码) .++编码通过逗号相分隔

var selectedValues = "";
$("input[name=cb_sys_user]:checked:checked").each(function(i){ 
   // alert($(this).val()); 
    selectedValues += $(this).val() + ",";
}); 
// alert(selectedValues);

传到后台的效果为A1,A2,A3,B1,B2,

则这个角色有A1,A2,A3,B1,B2权限,调用存储过程或function,解析A1,A2,A3,B1,B2,在acl表删除当前角色所具有的权限,然后插入A1,A2,A3,B1,B2权限(5条记录)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值