系统管理分析:
l 不同职责的人员,对于系统操作的权限应该是不同的。优秀的业务系统,这是最基本的功能。
l 可以对“组”进行权限分配。对于一个大企业的业务系统来说,如果要求管理员为其下员工逐一分配系统操作权限的话,是件耗时且不够方便的事情。所以,系统中就提出了对“组”进行操作的概念,将权限一致的人员编入同一组,然后对该组进行权限分配。具体到界面就是对岗位,部门进行权限分配。
l 权限管理系统应该是可扩展的。它应该可以加入到任何带有权限管理功能的系统中。就像是组件一样的可以被不断的重用,而不是每开发一套管理系统,就要针对权限管理部分进行重新开发。
l 满足业务系统中的功能权限。传统业务系统中,存在着两种权限管理,其一是功能权限的管理,而另外一种则是资源权限的管理,在不同系统之间,功能权限是可以重用的,而资源权限则不能。本文档针对功能权限管理进行分析设计。
l 系统管理包括了:组织机构、员工管理、岗位管理、密码修改、角色管理和菜单管理。其中组织机构中的部门可以作为公司存在。角色权限可以赋予岗位、部门、人员。
权限说明:
权限
在系统中,权限通过模块+动作来产生,模块就是整个系统中的一个子模块,可能对应一个菜单,动作也就是整个模块中(在B/S系统中也就是一个页面的所有操作,比如“浏览、添加、修改、删除”等)。将模块与之组合可以产生此模块下的所有权限。
权限组
为了更方便的权限的管理,另将一个模块下的所有权限组合一起,组成一个“权限组”,也就是一个模块管理权限,包括所有基本权限操作。比如一个权限组(用户管理),包括用户的浏览、添加、删除、修改、审核等操作权限,一个权限组也是一个权限。
角色
权限的集合,角色与角色之间属于平级关系,可以将基本权限或权限组添加到一个角色中,用于方便权限的分配。
用户组
将某一类型的人、具有相同特征人组合一起的集合体。通过对组授予权限(角色),快速使一类人具有相同的权限,来简化对用户授予权限的繁琐性、耗时性。用户组的划分,可以按职位、部门或其它来实现。用户可以属于某一个组或多个组。
本系统管理基于角色——权限管理。通过给某人赋予角色权限,角色与角色没有上下级关系,他们是平行的。通过角色赋予权限,是指没办法按职位或项目的分类来赋予权限的另一种方式,如:系统管理员,部门经理,资料备份员…
用户管理
用户可以属于某一个或多个用户组,可以通过对用户组授权,来对组中的所有用户进行权限的授予。一个用户可以属于多个项目组,或担任多个职位。
授权管理
将一个基本权限或角色授予用户或用户组,使用户或用户组拥有授予权限的字符串,如果角色、职位、中存在相同的基本权限,则取其中的一个;如脱离角色、职位、项目组,只是取消用户或用户组的中此角色、职位、项目组所授予的权限。用户所拥有的权限是所有途径授予权限的集合。管理员用户可以查看每个用户的最终权限列表。
权限管理
基本操作权限与权限组(基本操作权限的集合)的管理。
ITSM系统管理简略的UML活动图如下:
数据库表有:
登录日志信息表tsm_user_log_info
操作日志信息表tsm_system_option_log
组织机构基本信息表tsm_department
岗位基本信息表tsm_station
公司基本信息表tsm_company
员工基本信息表tsm_staff
用户表tsm_user
模块(菜单)基本信息表tsm_object
角色基本信息表tsm_role
用户角色关系表tsm_assignment[type为1]
模块角色关系表tsm_assignment[type为7]
岗位角色关系表tsm_assignment[type为3]
本系统管理使用Spring+Hibernate+JSF的J2EE框架。每张表都通过Hibernate进行O/R映射,生成了四个文件:分别是po(一个xml文件和一个java类),vo,dao.
以下是系统管理模块的子模块的详细设计(注:系统管理UML静态图请看《系统管理UML》):
一、登录
登录信息包括公司,用户名和密码,为了保证系统的安全性,密码进行了加密。登录成功后,将登录信息写入登录日志,并写入session,以便其他模块调用。
使用LoginBean类进行登录控制。
注:不同公司可以定义不同的菜单。一个用户可以属于多个公司。
二、组织机构
组织机构是一个公司的部门的组成,其中有上、下级关系的组成。准确的说,组织机构是一棵树结构。在数据库表中是:tsm_department,使用Hibernate进行持久化映射。两个po文件:TsmDepartment.hbm.xml,TsmDepartment.java,一个vo文件:TsmDepartmentVO.java,一个dao文件:TsmDepartmentDAO.java
组织机构的信息管理通过类TsmDepartmentBean.java实现。
需要说明的是:当一个部门作为公司时,将为这个公司生成一个管理员,管理员为 “admin”,初始密码为”111111”.另外这个部门下所有的数据(如员工等将属于多个公司。
三、员工管理
员工信息必须填写员工编号,员工姓名,员工所属部门。在数据库表中是:tsm_staff,使用Hibernate进行持久化映射。两个po文件:TsmStaff.hbm.xml,TsmStaff.java,一个vo文件:TsmStaffVO.java,一个dao文件:TsmStaffDAO.java
员工的信息管理通过类TsmStaffBean.java实现。类中包括了员工信息的添加、修改、删除等。需要说明的是:添加一个员工,则此员工的对应的用户信息将对应添加,用户名为员工姓名简拼。如员工吴东海拼音是:wdh,则生成的用户是wdh.当此用户激活后,此用户的密码默认是:111111.权限则可以由管理员分配。
四、岗位管理
岗位信息。不同的公司有不同的岗位。在数据库表中是:tsm_station,使用Hibernate进行持久化映射。两个po文件:TsmStation.hbm.xml,TsmStation.java,一个vo文件:TsmStationVO.java,一个dao文件:TsmStationDAO.java
岗位信息管理通过类TsmStationBean.java实现。
五、密码修改
密码修改用于当前登录用户的密码修改。在数据库表中是:tsm_user,使用Hibernate进行持久化映射。两个po文件:TsmUser.hbm.xml,TsmUser.java,一个vo文件:TsmUserVO.java,一个dao文件:TsmUserDAO.java
密码修改通过类TsmUserBean.java实现。
六、角色管理
本系统管理是基于角色管理的。在数据库表中是:tsm_role,使用Hibernate进行持久化映射。两个po文件:TsmRole.hbm.xml,TsmRole.java,一个vo文件:TsmRoleVO.java,一个dao文件:TsmRoleDAO.java
角色的增加、删除、更新通过类TsmRoleBean.java实现。
七、菜单管理
菜单管理实现了对系统所有菜单管理。在数据库表中是:tsm_object,使用Hibernate进行持久化映射。两个po文件:TsmObject.hbm.xml,TsmObject.java,一个vo文件:TsmObjectVO.java,一个dao文件:TsmObjectDAO.java