在产品的各个模块中,最让产品经理头疼的往往是权限管理模块,对于员工数量多、部门庞杂、业务流程复杂的公司来说,权限管理的设计就更为麻烦。
权限管理就是让用户属于不同角色,给角色赋予不同权限。
角色就是权限的集合。首先要搞清楚一个概念,角色和平时在公司中对于职位的称呼是有区别的,比如部分有主管和副主管,但是在后台管理系统中就只有一个角色,并且操作权限是相等的。权限的层级与公司流程、组织架构有关,而角色是一系列权限的集合,是不能直接映射到现实中的职位。
通常来讲,后台系统的角色分为三大类:一类是普通用户;一类是后台操作员(面向业务),这类主要是公司的运营人员;还有一类是管理员(面向系统),这一类的通常是各个部门的负责人或者公司的高层。
经常还会出现一个用户拥有多种角色的时候,这个时候一般都是取多个角色权限的并集。
当然还要考虑到一个问题,到底是找到用户去分配角色,还是找到角色去查看用户再进行后续的增删改查的操作,一般找到用户而分配角色,这是一个一对多的过程,而找到角色而去查找用户,这一般是一个多对多的过程,具体选择哪种方式还是要依据实际情况而定。
在弄清楚角色之后,权限设计的逻辑就更加清晰,在进行权限设计之前,先搞清楚权限管理有哪些影响:
(1)影响登录,角色差别大的应该设置分类登录。最直接的就是前端和后台的用户应该从不同的入口进入到系统当中。
(2)影响目录的显示,不同权限的用户进入到系统看到的功能目录不一样。有这样一条原则“无权限,无目录,无按钮”,如果有了功能又不能操作,这样会让用户体验变差。
(3)影响业务操作,不同的角色拥有不同的权限,不同的角色的操作方式都不同,在权限设计时一定要充分考虑到不同角色的操作习惯。
权限的设计对于整个后台系统有着非常重要的影响,也是非常难的一个模块,它不同于许多模块相对的独立,权限管理与公司的实际组织结构和业务流程有着密切的联系,权限的设计应该是能够更好的服务于现实的操作,提高效率。
权限是“赋予”的,是从上而下的一种关系。“赋予权限”本身也是一种权限功能,由此给出以下几点权限设计的建议:
(1)将所有的功能操作进行罗列与分类,这就类似于我们做思维导图,无限穷尽又相互独立,然后罗列完毕之后根据实际做减法,选出需要留下的部分。
(2)根据每种角色的业务操作流程,判断这个角色会涉及到哪些功能操作。这就类似于画流程图,在流程中找到角色会涉及到的操作。
(3)特例设计必须保留,在实际工作中可能存在一些特例,设计要留有余地。