http://blog.csdn.net/hwz119/article/details/3440763 2008 一、设计说明 由于现在系统的设计具有很多不可知的因素,可能存在未来的扩展,故此,在设计本权限架构时,尽可能的顾及到了未来的系统扩充和可操作性、可维护性。把此权限架构作为一个独立的模块进行开发,方便未来的其他系统应用。
设计说明: 本架构采用树型权限模型处理,所有节点,都可以作为权限的实体存在。 如: |--权限A |--------插入记录。 |--------修改记录。 |--------删除记录。 |--------查询权限。 |--权限B |--------打印权限。 |--------浏览权限。 |--------管理权限。 |--------查询权限。
如上所示,在[权限A]这个模块下,存在了插入、修改、删除、查询四个权限(也可能是存在多个),那么我们为了扩展的方便,将所有的权限,都以此树的形式进行处理,针对某一个权限节点,进行判断,控制。当我们要控制某一个模块的权限时,我们可以针对其父节点进行控制,当我们需要控制到某一个末端的权限时,我们可以针对末端子节点进行控制。
每一个用户,都可以拥有多种角色,这样,我们可以方便处理交叉权限。
二、库表结构 见附件:PurviewTable.Sql 注:为方便移植,在程序编写过程中,应尽量避免使用存储过程,尽量使用标准SQL和数据集进行操作,数据集的使用,尽量使用非强命名的数据集,数据查询时,避免标明字段的查询,条件允许的情况下,尽量使用*号,方便扩展。 为了程序编写的方便,所有表,都没有使用关系,所以,在表的添加删除操作时,一定要到位,特别时删除时,关系子表的数据一定要同步删除。 三、程序设计 1、 权限维护模块。 本模块主要实现针对权限树(表Tab_Purview)的维护,实现以树的形式的维护管理。 实现要点: A、 实现权限表以树形式的显示。 B、 实现权限表的不同节点的插入、修改、删除。 2、 用户维护模块。 本模块主要实现对用户的管理,针对用户表(Tab_UserTable)的操作。实现其添加、删除、修改等功能。用户密码字段(UserPass)应保存加密后的密码。
3、 角色维护模块 本模块主要实现针对角色的维护,其实就是表Tab_Role的插入修改删除。 A、 针对角色表Tab_Role的插入删除,对应的角色权限表Tab_RolePurview也要进行操作。 B、 每建立一个角色,将权限表Purview中的权限架构信息COPY一份到Tab_RolePurview表,并赋于其相应的权限。 C、 该角色所包含的用户的管理,针对该角色,添加、删除包含的用户。当添加一个用户时,就要向角色用户权限表Tab_RoleUserPurview插入数据,Copy角色用户表中Tab_RolePurview的数据到Tab_RoleUserPurview表。 D、 当删除一个用户时,应当连同Tab_RoleUserPurview中该用户的权限一同删除。 E、 当删除一个角色时,应当连同Tab_RoleUserPurview中该角色的权限一同删除。 4、 权限校验模块。 权限的校验可以直接根据模块ID(Tab_Purview中的ID)检索Tab_RoleUserPurview表,检索Purview为[有]的数据,如果存在行,说明该用户存在此模块的操作权限,否则说明该用户没有此模块的权限。 5、 扩展办法。 A、 用户登陆。 用户登陆时,直接读Tab_UserTable的数据,传入用户ID和加密后的密码进行比对检索。 B、 其他 6、 其他 四、界面设计 1、 权限维护。 见控件:UC_PurviewManager,UC_PurviewAdd,新增和修改可以使用同一界面。 2、 用户管理。 见控件:UC_UserManager,UC_UserAdd,新增和修改可以使用同一界面。 3、 角色管理。 见控件:UC_RoleManager 4、 系统登陆。 见控件:UC_Login 五、其他 A、 字典管理 字典的管理其实就是一个表(Tab_Dictionary)的读写操作。 界面见UC_DicManager。 左边为字典树,里面根据Tab_Dictionary中的唯一字典名列出,选择左边字典名时,右边GRID中列出该字典下的所有字段变量,选择一个字段变量,将字段变量的信息读入上面编辑框中,点保存保存到库。如果是新的字典,则直接插入到表,然后刷新左侧树信息。点删除时,删除GRID选择的数据。如果只有一条,提示不能删除。字典最少要保留一条数据。
六、时间要求:
SQL脚本
--权限树表,主要是保存一个权限架构的模型。 --角色表,保存角色和角色的描述信息。 --角色权限表,保存某一个角色的权限信息。 --用户表,保存用户信息。 --角色用户表,保存某一个角色下的用户信息。 --角色用户权限表,保存某一个角色下的用户权限信息。 |
|
来自: 心不留意外尘 > 《topcoder》