目录
1、概述
2、设计
2.1 用户管理
2.2 角色管理
2.3 权限管理
2.4 用户、角色、权限的关系
3、总结
在设计产品后台系统设置时,可根据不同项目的实际需求来设计后台系统设置的内容,比如用户角色权限、系统日志、数据统计,任务进程、数据备份等等很多,其中,用户角色权限管理属于整个后台系统设置必不可少的内容,甚至有些业务复杂的产品会为与其对应的后台系统设置单独设计一款独立运行的产品,不过目的都是为了更好的管理各个业务流程步骤中每一位用户的权限,防止用户操作混乱,使流程更清晰、任务更明确。
通俗来说,用户管理直接关系到用户进入该系统的第一步-用户登录,这里有几点我觉得可以作为设计参考:
(1)每一个账号要保证它在系统数据库中的唯一性,所以一般用户在登录页面输入的账号数据都是唯一的;
(2)可以设计超级管理员的概念,当某个用户被设置为超级管理员时,那么他将拥有该系统的所有权限,后面也无需再特意配置权限,一般超级管理员将配置给总经理等一些拥有重要职务的用户。
(3)可以设计用户状态的概念,它指的是用户的两种状态:启用和禁用,默认设置为启用,表示该账号状态正常可用可登录,禁用则表示该账号不可登录,一般禁用的情况是比如公司内某个员工在该系统拥有自己的账号,并且有使用该系统的操作记录,但是现在他不负责这个项目或离职了,这时候,他之前操作过的一些记录都是以他的账号记录在系统日志中,所以最好是不要将该账号删除,将用户状态设置为禁用,就可以限制他以后的登录权限了。
(4)如果新增用户不是由用户本人来操作,而是需要由拥有该系统新增用户权限的用户来操作的话,那么用户密码可以由系统默认设置一个初始密码,告知用户后,用户再去修改个人密码。
一般每个系统根据用户使用该系统需要的不同权限,都会设置几种不同的角色,它表示具备一定操作权限的用户组。
权限管理可以被更细致地划分为三种权限:查看权限、功能权限、数据权限。
2.3.1 查看权限:也叫访问权限,主要是表示用户是否拥有该页面的查看功能,所以查看权限是比功能权限和数据权限基础性更强的权限。
2.3.2 功能权限:比如新增、修改、删除、同意、驳回这些都是功能权限,像同意、驳回这些表示审核的按钮,一般只有主管、经理这些用户可以操作,所以需要单独设置功能权限,将功能权限授予给对应需要进行该操作的角色。
2.3.3 数据权限:一般数据权限的使用场景主要是设置给具有上下级关系的部门,比如员工A1、A2、A3均为部门普通员工,A1、A2、A3只能各自查看操作自己创建管理的数据,用户B为部门主管,他不仅能查看操作自己创建的数据,还能够查看操作员工A1、A2、A3创建管理的数据。
图一
我们是沿用一种市场主流的RBAC设计模式,它拥有三个重要组成部分,用户、角色、权限,而传统的权限模式的组成部分为用户和权限,RBAC设计模式优于传统模式之处在于它不是生硬的将权限直接授予给具体的用户,而是在用户和权限之间引入角色的概念,将权限授予给角色,然后给用户分配对应它所需权限的角色,这样的设计可以降低维护系统的成本。
图二
用户、角色、权限之间的配置其实是支持多对多的关系的,可参考图三:
(1)一个用户可以拥有一个或多个角色,如用户2有两个角色:角色 A、角色 B;
(2)一个角色可以拥有一个或多个用户,如角色 A有两个用户:用户 1、用户 2;
(3)一个角色可以拥有一个或多个权限,如角色 A有两个权限:权限 1、权限 2;
(4)一个权限可以被授予给一个或多个角色,如权限 3被授予给两个角色:角色 B、角色 C。
图三
此文是结合自己实际项目经验,对后台用户角色权限这部分作了一次小结,整体设计其实只是很基础的部分,以后还要多多积累经验向各位学习,我这里有不足之处的地方,也希望大家多多沟通。