关于OA权限管理——第一步、准备

一、设计

二、实体

Privilege.java

private Long id;
private String url;
private String name;
private String icon;//导航栏图标

private Set<Role> roles;
private Privilege parent;
private Set<Privilege> children = new HashSet<Privilege>();

Role.java

<span style="white-space:pre">	</span>private Long id;
<span style="white-space:pre">	</span>private String name;
	private String description;
	Set<User> users = new HashSet<User>();
	
	private Set<Privilege> privileges;//与Privilege相关联

三、映射

Privilege.hbm.xml:

<span style="white-space:pre">	

</span><span style="white-space:pre">	</span><class name="Privilege" table="privilege">
		<id name="id">
            <generator class="native"/>
		</id>
		<property name="name"/>
		<property name="icon"/>
		<property name="url"/>
		<!-- roles属性,本类与Role多对多关系 -->
		<set name="roles" table="itcast_role_privilege">
			<key column="privilegeId"></key>
			<many-to-many class="Role" column="roleId"></many-to-many>
		</set>
		<!-- parent属性,本类与Privilege(上级)的多对一关系 -->
		<many-to-one name="parent" class="Privilege" column="parentId"></many-to-one>
		<!-- children属性,本类与Privilege(下级)的一对多关系-->
		<set name="children" order-by="id">
			<key column="parentId"></key>
			<one-to-many class="Privilege"/>
		</set>
	</class>


Role.hbm.xml:

	<class name="Role" table="role">
		<id name="id">
            <generator class="native"/>
		</id>
		<property name="name"/>
		<property name="description"/>
		<!-- users属性,本类与User多对多关系 -->
		<set name="users" table="itcast_user_role">
			<key column="roleId"></key>
			<many-to-many class="User" column="userId"></many-to-many>
		</set>
		<!-- privileges属性:本类与Privilege多对多关系 -->
		<set name="privileges" table="itcast_role_privilege">
			<key column="roleId"></key>
			<many-to-many class="Privilege" column="privilegeId"></many-to-many>
		</set>
		
	</class>
四、初始化数据

按照菜单和操作来初始化数据

<span style="white-space:pre">		</span>// 权限信息
		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));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值