权限系统设计模型及实现.docx
- 文档编号:10692393
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:11
- 大小:133.38KB
权限系统设计模型及实现.docx
《权限系统设计模型及实现.docx》由会员分享,可在线阅读,更多相关《权限系统设计模型及实现.docx(11页珍藏版)》请在冰豆网上搜索。
权限系统设计模型及实现
内容发布系统权限设计说明书
项目名称:
内容发布系统发布系统v1.0
分类:
设计说明书
部门:
开发部
作者:
ChrisChen
日期:
2022年4月27日
参考号:
V1.0
页数:
附注:
文档控制页
日期
修改说明
版本
作者
审批人
审批日期
2004-3月
建立
1.0
ChrisChen
2004-7-15
增加栏目的权限控制说明
1.0
ChrisChen
权限系统设计模型及实现
设计一个比较抽象和通用的权限系统是一件比较复杂的工作,根据实际目前项目需要,我们设计了如下一个简易基于角色的权限模块。
先引出权限系统中的概念
1概念
用户:
使用权限的登录用户或者系统.一个用户有多个角色,但同时只能以一个角色登录系统。
角色:
拥有相关权限的一个集合。
一个角色可以有多个权限,一个角色有多个用户。
权限:
权限是一个资源+操作的组合。
即权限是指对什么东西有什么动作。
如用户管理是一个资源,而用户的增加、修改是指具体的操作,而整个“用户”+“增加”就构成了用户增加的权限。
单独的资源或操作在权限系统中没有意义。
操作:
对资源的动作。
如对数据的增加、删除、修改;对模块的登录等。
资源:
系统中要权限控制的东西。
也就是什么东西要进行权限的控制。
资源有不同的类型,一般系统中会遇到的能用类型为功能权限和数据权限。
目前我们系统中用到的资源类型有“模块”和“栏目”,用英文module和category表示。
2模型的描述
类图说明:
CmsUser:
user的实现
CmsRole:
role的实现
CmsPermission:
表示一个权限点。
其实resourceid表示操作的资源编号,resourcetype表示资源的类型,目前实现为module表示是一个模块,category表示资源是一个栏目;operateid是操作的编号,对于模块和栏目不同类型的资源操作可能是不一样的。
详见附件里的操作编码规则。
CmsFunction:
表示系统中的某个功能模块。
CmsUserRole:
表示用户和角色的关联关系。
一个CmsUser,有多个CmsUserRole
CmsRolePermission:
表示角色和权限的关联关系。
一个CmsRole有多个CmsRolePermission
3具体实现
具体的实现包括了3个部分:
权限的创建、权限的授权、权限的使用。
下面各个部分描述:
3.1权限创建
权限的创建过程就是应用系统开发人员定义好系统中要权限控制的资源以及定义对对资源具体化为哪些操作的过程。
在我们的内容发布里面作如下定义:
3.1.1模块资源
把系统中要用到的模块进行资源的统一编号,以模块的编号作为权限控制里资源编号,目前的编号规则为如下:
编号说明:
编号由”上级编号”+”两位本级编号”组成
上级编号由”功能码”+”两位本级编号”组成
功能码编码为:
新闻采集P
内容发布C
广告发布A
系统管理S
应用管理Y
功能
编号
备注
新闻采集
P
采集状态
P01
采集发布
P02
站点维护
P03
采集控制
P04
内容发布
C
文章栏目设置
C01
文章发布
C02
专题栏目设置
C03
专题发布
C04
广告发布
A
客户管理
A01
广告位管理
A02
广告发布
A03
系统管理
S
用户管理
S01
角色管理
S02
权限管理
S03
模板管理
S04
参数配置
S05
应用管理
Y
投票管理
Y01
BBS管理
Y02
公告管理
Y03
留言管理
Y04
3.1.2栏目资源
栏目资源的编号采用多级栏目的id,是数字
3.1.3模块操作
模块的操作编码规则遵循统一的操作编码规则,即:
“模块名称”+“_”+”按钮名称”
其中按钮名称只在保证可以唯一标识就可以了,如用数字或者英文。
目前我们定义文章发布里的按钮名称为:
按钮
按钮(操作)编号
备注
新增
C02_ADD
发布
C02_PUBLIC
删除
C02_DELETE
修改
C02_EDIT
预览
C02_PREVIEW
所有
C02_ALL
如果用户有这个权限,有所有操作的权限
审核
C02_VERIFY
红色表示目前未实现的功能
复制
C02_COPY
移动
C02_MOVE
其它模块的按钮操作也可以类似编码,但因为目前核心是文章发布。
所以暂时这里不一一列出。
以后扩展的时候一起实现。
3.1.4栏目操作
栏目的操作按钮根据目前的需求定义如下操作。
按钮
按钮(操作)编号
备注
新增
ADD
删除
DELETE
修改
EDIT
授权
AUTH
对这个栏目的子栏目进行管理员的权限分派
所有
C02_ALL
如果用户有这个权限,有所有操作的权限
3.2权限授权
权限授权就是指对于某个角色赋予相关的栏目权限和模块权限。
其中栏目权限为树状显示如下图:
模块的权限如下图:
3.3权限使用
对于前台使用权限的来说通过两个接口来调用。
主要是UserInfoBean和CmsAclManager来实现。
其类图如下:
权限的使用有如下逻辑过程:
3.4权限分级管理实现
3.4.1模型分析
对于比较大型的网站,集中式的管理无法满足用户的内容分级别、管理分层次的需求。
因此要设计分级的权限管理模型。
从实际使用用例来看,有如下的功能(操作)模型:
栏目的授权完成栏目资源的权限分派,栏目资源的权限点分为如下表:
按钮(权限点)
按钮(操作)编号
备注
栏目管理
ADMIN
栏目管理,考虑实现的复杂性,把栏目的增、删、改统一成一个权限点“栏目管理”
栏目新增
ADD
新增一个栏目
栏目删除
DELETE
删除一个栏目
栏目修改
EDIT
修改一个栏目
新增
C02_ADD
发布
C02_PUBLIC
删除
C02_DELETE
修改
C02_EDIT
预览
C02_PREVIEW
审核
C02_VERIFY
红色表示目前未实现的功能
复制
C02_COPY
移动
C02_MOVE
所有
C02_ALL
如果用户有这个权限,有所有操作的权限
3.4.2业务流程图
4附件
操作编码规则:
“功能编号”+”_”+”按钮编号”
如文章发布里的新增按钮编码为:
C03_ADD
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 权限 系统 设计 模型 实现