java web简单权限管理设计

最近在做一个网站类型项目,主要负责后台,ui框架选型为jquery easy ui,项目架构为spring mvc + spring jdbc,简单易用好上手!搭建好框架后开始了第一个任务,设计并实现一套简单的权限管理功能。

一套最基本的权限管理包括用户、角色、资源。

数据库设计

我的设计如下:

用户:user

角色:role

用户-角色:user_role

资源:resource(包括上级菜单、子菜单、按钮等资源)

角色-资源:role_resource

标准的权限管理系统设计为以上5张表。

注:用户、用户-角色我就不做说明了,这两个是很简单的两块,用户的crud,以及为用户分配角色(多对多的关系)稍微琢磨一下就清楚了,下面都是针对为角色分配权限的实现

后台实现

展示层采用ztree树

role.jsp

<%@ page contentType="text/html;charset=UTF-8"%><%@ include file="/views/back/include/taglib.jsp"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""><html xmlns=""><head><meta name="decorator" content="back" /><script type="text/javaScript">//打开菜单窗口function openMenuDialog(){var selected = $("#list").datagrid('getSelected');if (selected != null) {$("#id").val(selected.id);queryMenus(selected.id);$("#menuWindow").window("open");} else {$.messager.alert('提示', "未选择数据!");}}//角色-菜单信息入库function ajaxSubmit(rid,idstr){$.post("${ctx}/roleMenu/save.jhtml",{"roleId":rid,"ids":idstr},function(obj){$.messager.alert('提示',obj.msg);$("#menuWindow").window('close');},'json');}</script><!– ztree –><script type="text/javascript">var tree = "";var setting = {check : {chkboxType:{"Y":"ps","N":"s"},//勾选checkbox对于父子节点的关联关系,取消勾选时不关联父chkStyle:"checkbox",enable : true//是否复选框},//数据data : {simpleData : {enable : true}}};//查询菜单信息function queryMenus(roleId){$.post('${ctx}/role/treedata.jhtml', {'roleId':roleId}, function(zNodes) {for (var i = 0; i < zNodes.length; i++) {if (zNodes[i].isParent) {} else {//zNodes[i].icon = "${ctxStatic}/images/532.ico";//设置图标}}tree = $.fn.zTree.init($("#tree"), setting, zNodes);tree.expandAll(true);//全部展开//var nodes = treeObj.getNodes();}, 'json');}//获取选中节点function onCheck(){ var rid = $("#id").val(); var treeObj=$.fn.zTree.getZTreeObj("tree");var nodes=treeObj.getCheckedNodes(true);var ids = new Array();for(var i=0;i<nodes.length;i++){//获取选中节点的值ids.push(nodes[i].id);// v+=nodes[i].id + ",";//alert(nodes[i].id);}ajaxSubmit(rid,ids);}</script></head><body><!– 数据表格 –><table id="list" url='${ctx}/role/list/page.jhtml' method='post'class="easyui-datagrid" style="width:100%;" fitcolumns="true" toolbar='#tb' pagination='true' rownumbers='true' singleSelect='true'><thead><tr><th field='name' sortable='true' width='100'>角色名称</th><th field='description' width='200' align='right'>描述</th><th field='createTimeFormat' width='150' align='center'>创建时间</th></tr></thead></table><!– 编辑栏 –><div id="tb" style="padding:5px 5px;"><div><p2p:permission module="role" code="add"><a href="#" class="easyui-linkbutton" iconCls="icon-add" onclick="openCreateDialog();">新增</a></p2p:permission><p2p:permission module="role" code="edit"><a href="#" class="easyui-linkbutton" iconCls="icon-edit" onclick="openUpdateDialog();">编辑</a></p2p:permission><p2p:permission module="role" code="delete"><a href="#" class="easyui-linkbutton" iconCls="icon-remove" onclick="del();">删除</a></p2p:permission><p2p:permission module="role" code="authority"><a href="#" class="easyui-linkbutton" iconCls="icon-edit" onclick="openMenuDialog();">设置权限</a></p2p:permission></div><!– 搜索项 –><div style="margin-top:5px;padding-left:5px">用户名: <input id="query_name" class="easyui-textbox" type="text" style="width:110px" />创建日期: <input id="query_startDate" class="easyui-datebox" style="width:110px">至:<input id="query_endDate" class="easyui-datebox" style="width:110px"><a onclick="reload();" href="#" class="easyui-linkbutton" iconCls="icon-search">查询</a></div></div><!– 权限窗口 –><div id="menuWindow" class="easyui-window" title="配置权限" data-options="modal:true,iconCls:'icon-save',footer:'#menuWindowfooter'" style="width:350px;height:420px;padding:10px"><div id="tree" class="ztree" style="padding: 10px 20px;"></div></div><div id="menuWindowfooter" style="padding:5px;text-align:right;"> <a href="#" onclick="onCheck();" class="easyui-linkbutton" data-options="iconCls:'icon-save'">提交</a></div></body></html>等待故人的归来。山上的树,大多数是松树比较突出。

java web简单权限管理设计

相关文章:

你感兴趣的文章:

标签云: