在说权限设计前我们先来看个现实中的实例,大家在电影里面应该都见过这样的场景,当一个客户想进入银行仓库查看自己的私人保险柜信息时,通常都需要经过几个步骤的:
- 首先进入银行并说明自己是银行的客户以及来意
- 由业务经理带领进入对应的保险箱仓库(仓库应该不止一个,猜得啊,我也没有进去过^_^)
- 业务经理带着客户在众多保险箱中找到属于客户的私人保险箱
- 客户输入密码自己打开保险箱查看内部物品
在上面的实例中,客户在看到保险箱的物品之前,他需要有这么几个必要条件:
- 在银行有开户信息,能证明自己是银行客户
- 有进入保险箱仓库的权利
- 在众多的保险箱中找到属于自己的那一个
- 有打开保险箱的钥匙
了解了上面的过程,对于我们理解一个系统的权限就会容易很多,我们再来梳理一下用户在系统中看到数据的过程:
- 用户需要进入系统,这需要后台管理员给用户分配账号(后台系统是没有注册功能的)
- 用户进入系统能看到哪些菜单导航,需要后台给配置
- 通过菜单进入到具体的页面,在页面内能访问多少数据量也是有访问限制的
- 看到数据了,能对数据做多少操作也是有操作限制的
在上面的过程中,除了第一步的分配账号是由管理员操作的,剩下的三步都和用户所拥有的权限相关。通过具体操作对象的不同,上面三步可以分为两类:
- 功能:对功能的限制也称功能权限,主要是对访问区域以及对应操作的管理,如上面的仓库、页面以及页面操作按钮。
- 数据:对数据的限制也称数据权限,主要是对数据资源的访问控制,如保险箱和页面显示数据。
知