系统权限:行政管理,后勤服务,在线学习,纳税服务,我的空间
管理员:纳税服务,我的空间
一般用户:我的空间
角色与权限的关系:多对多
一个角色可有多个权限;一个权限可以被多个角色使用
角色表:role
角色ID,角色名称,状态
1 管理员 1
2 一般用户 1
角色权限表:role_privilege
角色ID,权限code
1 nsfw
1 space
2 space
权限表:privilege
权限code,权限名称
nsfw 纳税服务
space 我的空间
联合主键:①实现Serializable ②重写 hashCode, equals方法
角色与权限说明
角色与权限的关系
系统中可以存在多个角色,每个角色可以自由的组合系统定义的权限集合。即角色和权限的关系是多对多的关系。为了保存这种多对多关系,需要一个角色权限表来保存。角色与角色权限的关系是一对多的关系;而权限与角色权限的关系也为一对多关系。
定义系统权限集
将系统中需要使用到的权限先定义出来:粗粒度的分为各个子系统的访问权限;这些权限可以定义在常量文件中。
角色管理CRUD
实体类及映射文件
(1)Role/Role.hbml.xml
(2) RolePrivilege/RolePrivilegeId,RolePrivilege.hbm.xml
dao、service层主要操作方法
dao中主要方法:
service中主要方法:
action中主要方法
配置文件
配置role-spring.xml及role-struts.xml,并将role-struts.xml加入到struts.xml总配置文件中。
用户角色说明
一个用户可以对应多个角色,一个角色可以对应多个用户。用户与角色的关系也是多对多的关系。在页面中应该体现出在添加、编辑用户时可以选择多个角色;并且用户不直接关联系统的权限,用户的权限都是通过角色来关联实现。
用户:用户1,用户2
角色:管理员,一般用户
用户与角色的关系:多对多
一个用户可以有多个角色;一个角色可以被多个用户使用
用户:user
用户id,名称...
1 用户1
2 用户2
用户角色:user_role
用户id,角色id
1 1
1 2
2 2
角色:role
角色Id,名称
1 管理员
2 一般用户
改造用户管理
用户表实体类、映射文件的改造
新增“用户角色”实体及映射文件:
用户保存、更新、删除方法改造
1、 UserAction:
在跳转到addUI时应该初始化系统的所有角色列表提供添加页面进行选择:
更新方法:
在UserDaoImpl中:
UserServiceImpl类中:
在jsp页面中将角色选择改造为多选: