宅急送项目的第九天笔记!( 角色--权限管理)
来源:互联网 发布:视频黄金交易软件讲解 编辑:程序博客网 时间:2024/05/07 18:21
项目进度 :
1、 用户管理 (设置密码、登陆、 用户增删改查)
2、 基础设置业务 (取派标准、取派员、区域表、分区表、定区排班)
3、 取派业务 (业务受理、工作单快速录入、工作单批量导入 ) ------------- 业务受理后(追单、销单)、人工调度(为业务指定取派员)
TODO : 中转业务(分拣 )
业务: 工作单产生(管理环节,经理角色对工作单进行审核) ------ 中转业务开始
业务流程(jbpm) 环节: 中转(从出发地 到目的地 线路信息 )、到达后进行入库、 取派员取货出库 、 客户签收
====================================================================================
今天主要目标: 角色(权限)管理
权限管理 采用通用权限管理模型
分析权限管理实现功能
1、 模块管理 : 增删改查 (包括: 名称、描述)
2、 在模块下创建对应功能点 (包括: 名称、描述、对应资源路径 指定多个路径以, 分隔)
3、 角色管理 (包括名称、描述) --- 授权功能
4、 为用户授予角色
5、 权限控制 : Filter过滤器、 Interceptor拦截器、 Spring AOP
Filter 拦截 web访问url地址
Interceptor 拦截: 拦截以.action结尾url、拦截Action的访问
Spring AOP 拦截 : 只能拦截Spring管理Bean的访问 (业务层Service )
方案:拦截器 (所有需要被管理的JSP,第一天时,通过action访问)
一、 模块 功能管理
页面 --- 系统管理 -- 功能管理
模块列表查询 : module.jsp ----- datagrid ----- module_list.action (将返回json 绑定到datagrid 里) --- Ajax
模块添加 : module.jsp ----- form 以Ajax方式提交数据
二、 模块下添加具体功能点 (非Ajax方式 struts2标签方式 )
功能列表查询
module.jsp 双击模块信息 ---- 将模块id 发送到服务器端 ---- 根据模块id 查询 ---- 结果放入值栈 --- 跳转 function.jsp s:iterator 遍历显示
添加功能点 function.jsp --- function_add.jsp 隐藏域 模块id ------ FunctionAction save方法 --- 跳转 module.jsp
三、 角色管理 ,为角色授权
1、 点击系统管理 --- 权限管理 (跳转role.jsp )
将admin.json
{ id:1003, pId:100, name:"权限管理", t:"",page:"page_admin_role.action"}
${pageContext.request.contextPath}/role_list.action ----
设计domain 、初始数据、设计Service 、Action 配置dao.xml service.xml struts.xml
多对多注解配置
* 在两端都使用@ManyToMany
* 在维护外键表那一端 添加 @JoinTable
* 在不维护外键表那一端 mappedBy
class Role {
@ManyToMany(targetEntity=Function.class)
@JoinTable(joinColumns={@JoinColumn(name="role_id")},inverseJoinColumns={@JoinColumn(name="function_id")})
private Set<Function> functions = new HashSet<Function>();
}
class Function {
// 关联多个角色
@ManyToMany(targetEntity=Role.class,mappedBy="functions")
private Set<Role> roles = new HashSet<Role>();
}
完成角色查询和添加
2、 授权 为角色指定具有功能权限 (勾选方式)
操作 roles_functions 角色功能关系表 ------- 关系建立 insert 、关系解除 delete
*** 只需要用role关联function
选中一个角色 , 根据角色id 查询具有权限, 查询所有权限 ------- privilege.jsp 权限回显
*** 右键菜单授权
1)
<div id="menu" class="easyui-menu" style="width:120px;">
<!-- 一个div就是一个菜单项 -->
<div id="grantPrivilege">为角色授权</div>
</div>
2) datagrid 添加 onRowContextMenu 事件
onRowContextMenu : function(e, rowIndex, rowData){
// 阻止默认事件
e.preventDefault(); // 阻止原菜单
// e 事件
// rowIndex 行索引
// rowData 行数据
$('#menu').menu('show', {
left: e.pageX,
top: e.pageY
});
}
3) 定义成员变量,roleid 记录右键点击数据行 id ---- 点击为角色授权
根据角色id 查询已经具有权限 、查询所有权限 ---- privilege.jsp
关联一个对象 @LazyToOne ----- <manytoone lazy="false">
关联Set @LazyCollection ----- <set lazy="false" >
四、 为用户指定角色 (用户角色是只有一个 )
*** 在用户表中添加 一个角色表 外键 角色表 1 ----- * 用户
在User中添加了与Role ---- 多对一关联
在userlist.jsp 创建数据右键 授予角色菜单 --------- 弹出window (Ajax提交用户选中的角色)
1、 查询所有角色 显示到下拉列表
$.get("${pageContext.request.contextPath}/role_grantRoleList.action",function(data){
for(var i = 0 ; i < data.length; i++){
$option = $("<option value='"+data[i].id+"'>"+data[i].name+"</option>");
$("#role").append($option);
}
});
RoleAction ------ grantRoleList 方法
2、 右键选中,弹出窗口 ,表单显示默认值
// 设置默认值
$("#userinputid").val(rowData.id); // id存放隐藏域
$("#usernameTD").html(rowData.username);// 将username显示td中
3、 点击右键菜单 弹出window
$("#grantWindow").window('open');
4、 提交授予角色
$("#grantrolebtn").click(function(){
$.post("${pageContext.request.contextPath}/grantUserRole.action", $("#grantForm").serialize(), function(data){
if(data=='success'){
// 窗口关闭
$("#grantWindow").window('close');
// 隐藏域还原
$("#userinputid").val(''); // id存放隐藏域
$("#usernameTD").html('');// 将username显示td中
// 提示
$.messager.alert('消息','授予用户成功!','info')
}
});
});
easyui datagrid 常见错误, 表格无法显示 ----- hibernate 有些对象因为延迟加载,所以报错
******* 返回json时,将不需要显示 ,exclude
1、 用户管理 (设置密码、登陆、 用户增删改查)
2、 基础设置业务 (取派标准、取派员、区域表、分区表、定区排班)
3、 取派业务 (业务受理、工作单快速录入、工作单批量导入 ) ------------- 业务受理后(追单、销单)、人工调度(为业务指定取派员)
TODO : 中转业务(分拣 )
业务: 工作单产生(管理环节,经理角色对工作单进行审核) ------ 中转业务开始
业务流程(jbpm) 环节: 中转(从出发地 到目的地 线路信息 )、到达后进行入库、 取派员取货出库 、 客户签收
====================================================================================
今天主要目标: 角色(权限)管理
权限管理 采用通用权限管理模型
分析权限管理实现功能
1、 模块管理 : 增删改查 (包括: 名称、描述)
2、 在模块下创建对应功能点 (包括: 名称、描述、对应资源路径 指定多个路径以, 分隔)
3、 角色管理 (包括名称、描述) --- 授权功能
4、 为用户授予角色
5、 权限控制 : Filter过滤器、 Interceptor拦截器、 Spring AOP
Filter 拦截 web访问url地址
Interceptor 拦截: 拦截以.action结尾url、拦截Action的访问
Spring AOP 拦截 : 只能拦截Spring管理Bean的访问 (业务层Service )
方案:拦截器 (所有需要被管理的JSP,第一天时,通过action访问)
一、 模块 功能管理
页面 --- 系统管理 -- 功能管理
模块列表查询 : module.jsp ----- datagrid ----- module_list.action (将返回json 绑定到datagrid 里) --- Ajax
模块添加 : module.jsp ----- form 以Ajax方式提交数据
二、 模块下添加具体功能点 (非Ajax方式 struts2标签方式 )
功能列表查询
module.jsp 双击模块信息 ---- 将模块id 发送到服务器端 ---- 根据模块id 查询 ---- 结果放入值栈 --- 跳转 function.jsp s:iterator 遍历显示
添加功能点 function.jsp --- function_add.jsp 隐藏域 模块id ------ FunctionAction save方法 --- 跳转 module.jsp
三、 角色管理 ,为角色授权
1、 点击系统管理 --- 权限管理 (跳转role.jsp )
将admin.json
{ id:1003, pId:100, name:"权限管理", t:"",page:"page_admin_role.action"}
${pageContext.request.contextPath}/role_list.action ----
设计domain 、初始数据、设计Service 、Action 配置dao.xml service.xml struts.xml
多对多注解配置
* 在两端都使用@ManyToMany
* 在维护外键表那一端 添加 @JoinTable
* 在不维护外键表那一端 mappedBy
class Role {
@ManyToMany(targetEntity=Function.class)
@JoinTable(joinColumns={@JoinColumn(name="role_id")},inverseJoinColumns={@JoinColumn(name="function_id")})
private Set<Function> functions = new HashSet<Function>();
}
class Function {
// 关联多个角色
@ManyToMany(targetEntity=Role.class,mappedBy="functions")
private Set<Role> roles = new HashSet<Role>();
}
完成角色查询和添加
2、 授权 为角色指定具有功能权限 (勾选方式)
操作 roles_functions 角色功能关系表 ------- 关系建立 insert 、关系解除 delete
*** 只需要用role关联function
选中一个角色 , 根据角色id 查询具有权限, 查询所有权限 ------- privilege.jsp 权限回显
*** 右键菜单授权
1)
<div id="menu" class="easyui-menu" style="width:120px;">
<!-- 一个div就是一个菜单项 -->
<div id="grantPrivilege">为角色授权</div>
</div>
2) datagrid 添加 onRowContextMenu 事件
onRowContextMenu : function(e, rowIndex, rowData){
// 阻止默认事件
e.preventDefault(); // 阻止原菜单
// e 事件
// rowIndex 行索引
// rowData 行数据
$('#menu').menu('show', {
left: e.pageX,
top: e.pageY
});
}
3) 定义成员变量,roleid 记录右键点击数据行 id ---- 点击为角色授权
根据角色id 查询已经具有权限 、查询所有权限 ---- privilege.jsp
关联一个对象 @LazyToOne ----- <manytoone lazy="false">
关联Set @LazyCollection ----- <set lazy="false" >
四、 为用户指定角色 (用户角色是只有一个 )
*** 在用户表中添加 一个角色表 外键 角色表 1 ----- * 用户
在User中添加了与Role ---- 多对一关联
在userlist.jsp 创建数据右键 授予角色菜单 --------- 弹出window (Ajax提交用户选中的角色)
1、 查询所有角色 显示到下拉列表
$.get("${pageContext.request.contextPath}/role_grantRoleList.action",function(data){
for(var i = 0 ; i < data.length; i++){
$option = $("<option value='"+data[i].id+"'>"+data[i].name+"</option>");
$("#role").append($option);
}
});
RoleAction ------ grantRoleList 方法
2、 右键选中,弹出窗口 ,表单显示默认值
// 设置默认值
$("#userinputid").val(rowData.id); // id存放隐藏域
$("#usernameTD").html(rowData.username);// 将username显示td中
3、 点击右键菜单 弹出window
$("#grantWindow").window('open');
4、 提交授予角色
$("#grantrolebtn").click(function(){
$.post("${pageContext.request.contextPath}/grantUserRole.action", $("#grantForm").serialize(), function(data){
if(data=='success'){
// 窗口关闭
$("#grantWindow").window('close');
// 隐藏域还原
$("#userinputid").val(''); // id存放隐藏域
$("#usernameTD").html('');// 将username显示td中
// 提示
$.messager.alert('消息','授予用户成功!','info')
}
});
});
easyui datagrid 常见错误, 表格无法显示 ----- hibernate 有些对象因为延迟加载,所以报错
******* 返回json时,将不需要显示 ,exclude
******* 将返回数据 都使用include 控制
0 0
- 宅急送项目的第九天笔记!( 角色--权限管理)
- 宅急送项目的第七天笔记!(JBPM工作流和介绍 -- 权限管理模型)
- 读“基于角色的权限管理”笔记
- 基于角色的权限管理(转载)
- 基于角色的权限管理(转)
- 基于角色的权限管理(转载)
- oracle基础教程(第五天)管理索引、权限和角色
- Jenkins配置基于角色的项目权限管理
- Jenkins配置基于角色的项目权限管理
- Jenkins配置基于角色的项目权限管理
- jenkins配置基于角色的项目权限管理设置步骤
- Jenkins配置基于角色的项目权限管理
- Jenkins配置基于角色的项目权限管理--转
- Oracle学习笔记20150908权限与角色的管理
- 第18章 管理角色和权限
- 基于角色的权限管理
- oracle权限、角色的管理!
- 基于角色的权限管理
- redis transaction和connection命令操作
- 关于做人的触动
- win7开启MySQL日志记录
- NYOJ 325 zb的生日【DFS】
- ubuntu的技巧笔记汇总
- 宅急送项目的第九天笔记!( 角色--权限管理)
- 天声人語 20150405
- 【Android开发】 基于Android SDK 4.0.3 的AVD创建、启动以及基本使用
- 人见人爱A+B HDU 2033
- 日经春秋 20150405
- 通过Application全局对象传递数据
- redis server和scripting 命令操作
- 蓄水池 抽样
- 模式分类-绪论