调查管理系统(6)---权限设计
2016-09-28 22:53
260 查看
N N N
User --------> Role --------------> Right 权限码
Tom 科长 1 SurveyAction_newSurvey 0001
2 SurveyAction_editSurvey 0010
Tomas 处长 3 SurveyAction_delSurvey 0100
4 SurveyAction_mySurvey 1000
TomsLee
1《《N
String rightIds= “1,2,3,4……..”;
String roleIds =“1,2,3”;
Int rightSum =15
二进制按位运算 速度快
1111
&
0001
0001
Int 4*8 32
权限太少
分组
Right rightPos
SurveyAction_newSurvey 0 1
SurveyAction_editSurvey 0 2
SurveyAction_delSurvey 0 3
SurveyAction_mySurvey 0 4
1<<60
1 1
1 2
1 3
1 4
总和 是二进制的或运算
Long[] 存储权限
判断有无权限看他的与运算,为0则为无权限
1 有权限
新添加的两张表
user_role_link userid roleid
role_right_link roleid rightid
<hibernate-mapping package="cn.itcast.surveypark.domain">
<class name="User" table="users">
<id name="id" column="id" type="integer">
<generator class="identity" />
</id>
<property name="email" column="email" type="string" length="50" />
<property name="password" column="password" type="string" length="50" />
<property name="nickName" column="nickname" type="string" length="50" />
<property name="regDate" column="regdate" type="timestamp" update="false"/>
<!-- 角色集合 -->
<set name="roles" table="user_role_link" lazy="false">
<key column="userid" />
<many-to-many class="cn.itcast.surveypark.domain.security.Role" column="roleid" />
</set>
</class>
</hibernate-mapping>
不在一个包下得写完整类名
identity:由底层数据库生成标识符。identity是由数据库自己生成的,但这个主键必须设置为自增长,前提条件是低层数据库支持自动增长字段类型
lazy懒加载
<hibernate-mapping package="cn.itcast.surveypark.domain.security">
<class name="Role" table="roles">
<id name="id" column="id" type="integer">
<generator class="identity" />
</id>
<property name="roleName" column="rolename" type="string" length="50" />
<property name="roleDesc" column="roledesc" type="string" length="200" />
<property name="roleValue" column="rolevalue" type="string" length="20" />
<!-- 映射role到Right之间多对多关联关系 -->
<set name="rights" table="role_right_link" lazy="false">
<key column="roleid" />
<many-to-many class="Right" column="rightid" />
</set>
</class>
</hibernate-mapping>
<hibernate-mapping package="cn.itcast.surveypark.domain.security">
<class name="Right" table="rights">
<id name="id" column="id" type="integer">
<generator class="identity" />
</id>
<property name="rightUrl" column="righturl" type="string" length="50" />
<property name="rightName" column="rightname" type="string" length="200" />
<property name="rightDesc" column="rightdesc" type="string" length="200" />
<property name="rightPos" column="rightpos" type="integer" update="false"/>
<property name="rightCode" column="rightcode" type="long" update="false" />
<property name="common" column="common" type="boolean" />
</class>
</hibernate-mapping>
权限位和权限码均不允许更新
User --------> Role --------------> Right 权限码
Tom 科长 1 SurveyAction_newSurvey 0001
2 SurveyAction_editSurvey 0010
Tomas 处长 3 SurveyAction_delSurvey 0100
4 SurveyAction_mySurvey 1000
TomsLee
1《《N
String rightIds= “1,2,3,4……..”;
String roleIds =“1,2,3”;
Int rightSum =15
二进制按位运算 速度快
1111
&
0001
0001
Int 4*8 32
权限太少
分组
Right rightPos
SurveyAction_newSurvey 0 1
SurveyAction_editSurvey 0 2
SurveyAction_delSurvey 0 3
SurveyAction_mySurvey 0 4
1<<60
1 1
1 2
1 3
1 4
总和 是二进制的或运算
Long[] 存储权限
判断有无权限看他的与运算,为0则为无权限
1 有权限
新添加的两张表
user_role_link userid roleid
role_right_link roleid rightid
<hibernate-mapping package="cn.itcast.surveypark.domain">
<class name="User" table="users">
<id name="id" column="id" type="integer">
<generator class="identity" />
</id>
<property name="email" column="email" type="string" length="50" />
<property name="password" column="password" type="string" length="50" />
<property name="nickName" column="nickname" type="string" length="50" />
<property name="regDate" column="regdate" type="timestamp" update="false"/>
<!-- 角色集合 -->
<set name="roles" table="user_role_link" lazy="false">
<key column="userid" />
<many-to-many class="cn.itcast.surveypark.domain.security.Role" column="roleid" />
</set>
</class>
</hibernate-mapping>
不在一个包下得写完整类名
identity:由底层数据库生成标识符。identity是由数据库自己生成的,但这个主键必须设置为自增长,前提条件是低层数据库支持自动增长字段类型
lazy懒加载
<hibernate-mapping package="cn.itcast.surveypark.domain.security">
<class name="Role" table="roles">
<id name="id" column="id" type="integer">
<generator class="identity" />
</id>
<property name="roleName" column="rolename" type="string" length="50" />
<property name="roleDesc" column="roledesc" type="string" length="200" />
<property name="roleValue" column="rolevalue" type="string" length="20" />
<!-- 映射role到Right之间多对多关联关系 -->
<set name="rights" table="role_right_link" lazy="false">
<key column="roleid" />
<many-to-many class="Right" column="rightid" />
</set>
</class>
</hibernate-mapping>
<hibernate-mapping package="cn.itcast.surveypark.domain.security">
<class name="Right" table="rights">
<id name="id" column="id" type="integer">
<generator class="identity" />
</id>
<property name="rightUrl" column="righturl" type="string" length="50" />
<property name="rightName" column="rightname" type="string" length="200" />
<property name="rightDesc" column="rightdesc" type="string" length="200" />
<property name="rightPos" column="rightpos" type="integer" update="false"/>
<property name="rightCode" column="rightcode" type="long" update="false" />
<property name="common" column="common" type="boolean" />
</class>
</hibernate-mapping>
权限位和权限码均不允许更新
相关文章推荐
- OA系统权限管理设计(上)
- 基于RBAC模型的权限管理系统的设计和实现
- 实现业务系统中的用户权限管理--设计篇
- 实现业务系统中的用户权限管理--设计篇
- 实现业务系统中的用户权限管理--设计篇
- 基于RBAC模型的通用权限管理系统的设计(数据模型)的扩展
- 实现业务系统中的用户权限管理--设计篇
- 通用权限管理系统设计篇(三)——概要设计说明书
- OA系统权限管理设计方案
- 基于整合了struts 和hibernate 的j2ee 架构的用户权限管理系统的设计与实现
- 用户权限设计(四)——基于RBAC模型的通用权限管理系统的设计(数据模型)的扩展【转】
- 通用数据权限管理系统设计
- 基于RBAC模型的权限管理系统的设计和实现
- 通用权限管理系统设计篇(三)——概要设计说明书
- 基于RBAC模型的权限管理系统的设计和实现
- OA系统权限管理设计(上)
- 用户权限设计(三)——通用数据权限管理系统设计
- 用户权限设计(四)——基于RBAC模型的通用权限管理系统的设计(数据模型)的扩展
- 通用数据权限管理系统设计
- 实现业务系统中的用户权限管理--设计篇