Yii权限管理工具Srbac使用小结
一、关于Srbac
Srbac是基于Yii 框架的 RBAC(基于角色的访问控制) 插件模块,用于帮助Yii开发人员更方便地进行权限控制,在实际应用过程中也比较方便。
二、安装配置Srbac
在Yii的官方网站的Extensions中已经收录了Srbac插件,且给出了官方的配置文档,比较详细地列出了修改的具体内容。配置详情请见《Yii中配置Srbac模块》。
三、Srbac的使用
Srbac提供了比较友好的图形化界面操作,可以比较方便使用其提供的功能。我们可以通过这三个按钮来进行具体到每个用户的权限操作和查询。
四、Srbac功能的详细解释
Srbac模块是通过roles-- tasks-- operations 这三者之间的映射关系来实现权限控制的。
roles:角色
tasks:任务
operations:操作
其中:
users对应于我们的用户
roles对应于我们系统需要的所有角色名称
tasks对应于我们的访问控制任务,其中可以包含多个的operation
operations对应于我们需要进行权限管理的所有具体操作的名称(例如某个具体的action,我们只允许某个role来访问)
配置好role/task/operation之后,将operations分配给各个task,然后再将tasks分配给具体的role,每个user都可以指定单独的role,实现其权限的赋予。这些,通过界面中的按钮来实现。
另外,Srbac还有用户查询界面,可以方便的对用户进行详细权限的查询:
五、Srbac的数据库表
其中,user表是我们系统的用户表,其中包含我们项目用户的基本信息,我们可以根据项目的实际需求来配置user表,但需要注意的是,我们需要有一个识别用户的唯一字段,我们习惯使用user的id来判断用户的身份:
auth_item_child表用来记录role/task、task/operation之间的继承关系:
auth_item表是存储我们新建role/task/operation的类型、备注、业务规则等:
auth_assignment表中记录着各个role与user表中的用户id对应情况:
这几张表能够确保我们可以对每个用户的权限进行精确地管理。如果项目需要,我们也可以对这些表进行自由的调整,比如将auth_assignment表中的字段插入user表中,使用user表进行角色的查询等等。
上一张RBAC工作流程图:
End.