分为几个概念:
1.User——用户
2.UserGroup——用户组
3.Permission——权限项
4.Project——项目
5.State——状态,一个项目可有n个状态组成
6.Process——处理项,从属于State,即一个State中可进行多种处理
7.Role——用户角色
权限方面的思路就是将State与Role绑定,将User加入到Role中,通过Role-State
关系判断用户是否有进入State操作Process的权限。
因为设计出发点是一个便于开发的框架,所以开发的过程大致是这样的:
a.分析业务需求,用一个Project进行描述
b.将Project的完成分成几个步骤,每个步骤对应一个State
c.确定每个State有哪些处理要求,构建Process
d.分析用户权限,定义Role,并为每个State确定Role-State关系
e.将User加入Role
也许有网友认为Role的功能与UserGroup重复,而Permission没有使用到。我的考虑
是这样的:
实施HARVEST时,我曾遇到这样一个问题,HARVEST将使用者分为管理员和用户两类,
用户可通过设定角色无穷分类,而管理员确无法细化。为此我认为在角色之上,应该从
系统级上进行一个用户分类,即UserGroup。UserGroup是系统识别的,对用户透明。
Permission的考虑也类似,Permision与User、UserGroup都可建立联系,目的在于让系
统在方法调用时可判断识别,一般我用facade模式构建一个个模块,模块入口类统一控
制Permission。这样的设计是为了使用户在定义权限时简单化,只要定义将不同的User
加入到不同的Role就行,同时也避免系统因为用户权限使用的过于简单,导致系统级权
限管理的弱化。
权限
最新推荐文章于 2024-06-26 13:35:00 发布