数字资源管理系统权限管理模块_详细设计说明书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字资源管理系统权限管理模块
详细设计说明书
修改历史
目录
1.引言 (3)
1.1编写目的 (3)
1.2项目背景 (3)
1.3定义 (3)
1.4参考资料 (3)
2.总体设计 (3)
2.1需求概述 (3)
2.2软件结构 (3)
3.程序描述 (4)
3.1系统管理 (4)
3.1.1功能详述 (4)
3.1.2性能 (5)
3.1.3输入项目 (5)
3.1.4输出项目 (5)
3.1.5算法 (6)
3.1.6程序逻辑 (6)
3.1.7 接口 (9)
3.1.8 存储分配 (10)
3.1.9 限制条件 (11)
3.1.10 测试要点 (11)
1.引言
1.1编写目的
【阐明编写详细设计说明书的目的,指明读者对象。】
1.2项目背景
【应包括项目的来源和主管部门等。】
1.3定义
【列出文档中所用到的专门术语的定义和缩写词的原文。】
1.4参考资料
【列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源,可包括:项目的计划任务书、合同或批文;
项目开发计划;
需求规格说明书;
概要设计说明书;
测试计划(初稿);
用户操作手册(初稿);
文档中所引用的其他资料、软件开发标准或规范。】
2.总体设计
2.1需求概述
2.2软件结构
【如给出软件系统的结构图。】
3.程序描述
系统提供如下功能:
(1)系统管理
系统管理包含系统权限分配,角色定义,角色的增加、删除、修改,用户的增加、删除、修改,还要包含系统参数设置。
3.1系统管理
3.1.1功能详述
数字资源管理系统权限管理模块拥有动态的角色管理和用户管理。所有系统权限需要明确定义,定义好的用户与角色挂钩,角色与业务挂钩,业务与窗体、按钮挂钩。用户可以扮演多个角色进行操作,角色可以由多种业务组成,一个窗体可以包含多个业务,一个业务可以包含按钮。
一、系统的主要权限列表如下:
(1)增加角色
(2)拷贝增加角色
(3)删除角色
(4)修改角色
(5)查看所有角色
(6)查看所有用户
(7)修改用户
(8)删除用户
(9)增加用户
二、业务与窗体、按钮挂钩
每种角色对应着一系列业务,不同的业务需要不同的窗体和按钮支持,由业务决定哪些窗体和按钮可见,既实现通过权限控制界面操作和后台验证。上述用户-角色-业务-窗体-按钮对应关系需要在数据库中定义,并固定下来。系统权限控制的灵活性体现在角色、用户的动态管理上。
三、角色与业务挂钩
增加角色时,需要指定该角色所能够拥有的业务,保存在“角色表”和“角色—业务关系表”中。
修改角色时,需要重新指定该角色的业务,并修改“角色—业务关系表”。
删除角色时,在“角色表”和“角色—业务关系表”中删除相应记录。
四、用户与角色挂钩
增加用户时,需要指定该用户所扮演的所有角色,保存在“用户表”和“用户-角色关系表”中。
修改用户时,需要重新指定该用户的角色时,修改“用户-角色关系表”。
删除角色时,在“用户表”和“用户—角色关系表”中删除相应记录。
3.1.2性能
数字资源管理系统权限管理模块的操作只有管理员一级的用户拥有权限,不存在多用户并发访问的压力问题。但是对于用户的权限控制比较占用资源,可能存在的问题集中在多表操作上,在用户登录系统的验证和进入系统后的权限控制时会频繁访问数据库,造成可能的系统压力。用户列表的翻页操作,由于用户信息数据量大,可能随着翻页的增加导致系统速度变慢。
3.1.3输入项目
(1)角色管理
增加角色:角色名、业务编号;
删除角色:无;
修改角色:原有角色DBID、角色名、业务编号。
(2)用户管理
增加用户:用户名、密码、角色;
删除用户:无;
修改用户:原有用户DBID、用户名、密码、角色;
查询用户:用户名。
3.1.4输出项目
(1)角色管理
增加角色:无;
删除角色:新角色列表;
修改角色:原有角色DBID、原有角色名、原有业务编号。
(2)用户管理
增加用户:无;
删除用户:新用户列表;
修改用户:原有用户DBID、原有用户名、原有密码、原有角色;
查询用户:符合要求的用户列表。
3.1.5算法
(1)用户可见窗体节点树的动态生成
用户所见的节点树由该用户所扮演的角色决定,事实上是由角色所具有的权限所决定的。数据库的“窗体表”中存储各窗体节点的信息,包括窗体名称、链接、节点编码等。节点编码体现节点的层次,如下图所示:
节点编码的位数除以2得到的值再减1即为该节点位于的层数,每个节点编码(根节点除外)去掉末尾的两位数后得到的编码即为此节点的父节点的编码。这样,只要有了一个节点集合以及这些节点的编码,就可以唯一确定并生成一棵树结构。
因此,只要根据用户权限从数据库中读取出该用户所能操作的所有节点的集合,就可以在用户界面上动态的创建出此用户所能够访问的节点(窗体)。
(2)页面按钮权限控制
对于页面和按钮的控制,是通过角色管理实现的。首先,给已有的角色分配定义好的业务,存入数据库中的“角色—窗体—业务关系表”中。
当用户登录系统时,会根据用户的角色在“角色—窗体—业务关系表”中查询角色所拥有的业务和窗体,通过窗体可以生成如上的节点数,通过用户拥有的业务查询“业务—按钮对应表”则可以控制用户在刚窗体中的按钮是可见的。
3.1.6程序逻辑
IDO层:
(1).bit.yanwang.privilege.right.ido.BusinessIDO:
对应表privilege_business(业务表)
(2).bit.yanwang.privilege.right.ido.RoleIDO: