11.权限的创建
- 权限(思路:1.先建一个权限的实体类,属性包括id,name,src,parent,child. 2.建立和角色的多对多关联 3.把要设置的所有权限设置到权限表中. 4.在jsp页面中显示所有权项,根据id集来传到action中,再根据当前对象设置当前对象的权限。)
14.1模型
1.2 实质
14.3具体要实现的功能
14.4步骤
设计实体
14.5实体类图
14.6javabean
角色类
14.7映射关系(一对多和多对多的映射配置)
14.8初始化数据(像他这样设置超级管理员,还有添加管理员的功能,然后把处理添加管理员之外的其他功能都付给管理员就行了)
public class Installer {
@Resource
private SessionFactory sessionFactory;
@Transactional
public void install() {
Session session = sessionFactory.getCurrentSession();
// ===================================================
// 一、超级管理员
User user = new User();
user.setName("超级管理员");
user.setLoginName("admin");
user.setPassword(DigestUtils.md5Hex("admin")); // 要使用MD5摘要
session.save(user); // 保存
// ===================================================
// 二、权限数据
Privilege menu, menu1, menu2, menu3, menu4, menu5;
menu = new Privilege("系统管理", null, "FUNC20082.gif", null);
menu1 = new Privilege("岗位管理", "roleAction_list", null, menu);
menu2 = new Privilege("部门管理", "departmentAction_list", null, menu);
menu3 = new Privilege("用户管理", "userAction_list", null, menu);
session.save(menu);
session.save(menu1);
session.save(menu2);
session.save(menu3);
session.save(new Privilege("岗位列表", "roleAction_list", null, menu1));
session.save(new Privilege("岗位删除", "roleAction_delete", null, menu1));
session.save(new Privilege("岗位添加", "roleAction_add", null, menu1));
session.save(new Privilege("岗位修改", "roleAction_edit", null, menu1));
session.save(new Privilege("部门列表", "departmentAction_list", null, menu2));
session.save(new Privilege("部门删除", "departmentAction_delete", null, menu2));
session.save(new Privilege("部门添加", "departmentAction_add", null, menu2));
session.save(new Privilege("部门修改", "departmentAction_edit", null, menu2));
session.save(new Privilege("用户列表", "userAction_list", null, menu3));
session.save(new Privilege("用户删除", "userAction_delete", null, menu3));
session.save(new Privilege("用户添加", "userAction_add", null, menu3));
session.save(new Privilege("用户修改", "userAction_edit", null, menu3));
session.save(new Privilege("用户初始化密码", "userAction_initPassword", null, menu3));
// -------------------------
menu = new Privilege("网上交流", null, "FUNC20064.gif", null);
menu1 = new Privilege("论坛管理", "forumManageAction_list", null, menu);
menu2 = new Privilege("论坛", "forumAction_list", null, menu);
session.save(menu);
session.save(menu1);
session.save(menu2);
// -------------------------
menu = new Privilege("审批流转", null, "FUNC20057.gif", null);
menu1 = new Privilege("审批流程管理", "processDefinitionAction_list", null, menu);
menu2 = new Privilege("申请模板管理", "applicationTemplateAction_list", null, menu);
menu3 = new Privilege("起草申请", "flowAction_applicationTemplateList", null, menu);
menu4 = new Privilege("待我审批", "flowAction_myTaskList", null, menu);
menu5 = new Privilege("我的申请查询", "flowAction_myApplicationList", null, menu);
session.save(menu);
session.save(menu1);
session.save(menu2);
session.save(menu3);
session.save(menu4);
session.save(menu5);
}
public static void main(String[] args) {
System.out.println("正在执行安装...");
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
Installer installer = (Installer) ac.getBean("installer");
installer.install();
System.out.println("== 安装完毕 ==");
在角色action中通过set private设置角色的
设置权限:
设置权限页面:
18,判断是否有权限(核心:权限的判断其实就是判断你权限表里是否有这个名字或者uri地址)
18.1其实就是看你有没这个功能的uri地址
18.2 也可以判断当前用户是否有这个权限的名字(循环判断)