账户、角色与权限(一)

大家好!我是在互联网圈努力摸爬滚打的 hu knows。今天想和大家讨论一下用户、角色与权限的关系。

大多数的toB产品在设计用户管理时都会思考需要不需要和怎么做角色管理,所以笔者想讲一讲我对用户、角色和权限的思考与理解。


为什么要有账户、角色和权限控制

首先,一个 to B 系统不可能只一个用户,不然那就是咱们自己用户的 office 365 了对吧,更何况office都有团队版

其次,一个系统多个用户很有可能都有不同功能的需求,比如;我今天是想在在考勤系统中申请休假,那领导们就是想在考勤系统中看大家考勤,审批申请。

最后,一个系统中为什么还有权限控制呢,因为系统中会有多租户,比如:一个集团下面有很多子公司,每个子公司之间是不是需要有各自的总裁,子公司 A 的总裁管不着子公司B的员工。

综上,一个 to B 的系统的权限控制很重要。



什么是要有账户、角色和权限控制

用户、角色与权限的设计依托于工作流,不同业务的权限控制需求有所差异,但是大致可以归结为以下三类:

1、不同角色的功能权限不同:例如,张三可以提离职流程,但是流程中需要有各级角色的人审核通过,流程才能结束;

2、不同租户,互相完全独立:例如,项目 A 是做视频业务的,项目基地在上海,项目中有管理员可以给普通用户分配权限,但是项目 B 做的IM系统,基地也在上海,但是这两个项目的人拥有的权限一定是互相独立,不交叉的;

3、多级分支机构的管理,例如,总公司航空母舰,下面有三四级机构,二级机构 母舰2,三级机构 母舰3,总公司有权查看 / 操作下面每一级机构的经营状况等。

多租户和分支机构在大家看来可能有些类似,他们最大的区别就是,多级分支机构有层级的概念,他们的权限可能有交叉。


怎么做权限控制呢?

首先,决定业务流程,比如 OA 系统审核流程有如下两种设计方式,大家可以感受一下他们的区别:

第一种:设计好审批流程,创建审批的时候选择每个步骤的审批人;

第二种:设计好审批流程和涉及的角色,创建审批的时候选择每个步骤中角色对应的审批人。

对比如下图所示,可以发现角色的引入会对整个审批流程的设计有三处影响:创建审批流程的时候需要多选择每一步中对应拥有审批权限的角色,创建流程前需要先创建中间涉及到的角色,应用流程的时候需要选择对应是对应角色权限的用户。

第一种的优点是实现很快,很灵活,不需要给用户预先分配角色,缺点是流程不清晰(光看流程图可能看不懂在干嘛,只知道每一步的操作,而不知道这些步骤的目的),以及每次选择用户可能都需要搜索;第二种的优点是流程清晰(流程图中每一个步骤,每个步骤是谁来操作都很明了),审批不需要模版,将权限分配给角色而不是人(迁移性搞高),缺点是创建流程之前需要先创建角色。

所以在给用户分配权限的时候,角色的引入无疑会帮助使用者理解工作流。


三种权限

权限设计大多分为三种:页面权限、操作权限和数据权限。拿微信举例,页面权限就是你可以看到消息界面、朋友圈界面还是热门文章界面等;操作权限就是你是只能看,还是可以发消息、发文章、评论、甚至撤回等操作;数据权限则是你可以看到谁给你发的消息,不能看到谁的消息等。

笔者将页面权限和操作权限糅合了理解为功能权限,比如:在消息页面查看消息、在消息页面发送消息、在消息页面接受消息等功能,也可以设计成一整个消息功能。

数据权限可以是用多个维度去分割的,分割方式参考上面的三种权限系统的应用场景。比如由时间去做分割,或者用户角度去做分割,比如说管理员A创建的用户A,B,C这些用户的操作管理员A都可以看到,这就是用户角度,时间纬度则是管理员A可以看到所有的记录,而管理员B只能看到他开权限之后的记录。

后续权限的设计和理解请参考第二章啦,喜欢的小可爱可以点个赞哇~

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容