科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件Jquery Struts2简单权限设计

Jquery Struts2简单权限设计

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

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

来源:中国IT实验室 2013年2月21日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

ZDNet至顶网软件频道 做一个简单的 非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条记录)。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章