从上一章节的末尾提出的问题,不难看出,基于ACF的权限虽然简单,但是每增加一个控制器,一个操作,都需要修改程序,这不仅不合理,操作起来更会让人觉得抓狂,发疯!为了让你更happy的敲代码,官方还给出了第二种基于角色的访问控制。
通过这篇文章,我们先对rbac有一个基本的简单了解,为我们后面理解 yii2-admin 组件打下坚固的基础。当然啦,更是为了我们强大的管理后台做的准备!
我们先来看下wiki是怎么定义rbac这个词的:以角色为基础的访问控制(英语:Role-based access control, RBAC),是资讯安全领域中,一种较新且广为使用的访问控制机制,其不同于强制访问控制以及自由选定访问控制直接赋予使用者权限,而是将权限赋予角色。
官方说的就是蛮官方的。不过说的没错,这些我们从字面的角度也能看的出来。总结概括一句话:是一种访问控制,通过用户的角色来判断用户是否被授权访问,换句话就是说我们要给角色添加权限,然后再把角色赋予用户!当然啦,这只是一个层面的理解,下面我们换图来帮助大家理解它们之间的关系。
主体 - 权限
如果没有角色层,单纯的来看主体跟权限之间的关系,确切的说,一个权限可以分配给多个主体,一个主体又可以同时拥有多种权限。不过这不并属于我们本文所说的,仅仅做个基础层面的理解,不要误解哦~
主体-角色-权限
按照本文的主题,我们来对rbac做一个理解
最后我们再做个文字层面的总结:
一个主体可对应多个角色
一个角色可对应多个主体
一个角色可拥有多个权限
一种权限可被分配给多个角色
作为基础,了解这么做就好了。
下一章节我们来分析下yii2官方自带的rbac数据表,如果有可能,后面我们会手动配置一套简单的权限管理系统,让权限神马的都不是问题!