Yii权限管理工具Srbac使用小结

一、关于Srbac

Srbac是基于Yii 框架的 RBAC(基于角色的访问控制) 插件模块,用于帮助Yii开发人员更方便地进行权限控制,在实际应用过程中也比较方便。

二、安装配置Srbac

在Yii的官方网站的Extensions中已经收录了Srbac插件,且给出了官方的配置文档,比较详细地列出了修改的具体内容。配置详情请见《Yii中配置Srbac模块》。

三、Srbac的使用

clip_image002

Srbac提供了比较友好的图形化界面操作,可以比较方便使用其提供的功能。我们可以通过这三个按钮来进行具体到每个用户的权限操作和查询。

四、Srbac功能的详细解释

Srbac模块是通过roles-- tasks-- operations 这三者之间的映射关系来实现权限控制的。

roles:角色

tasks:任务

operations:操作

clip_image004

其中:

users对应于我们的用户

roles对应于我们系统需要的所有角色名称

tasks对应于我们的访问控制任务,其中可以包含多个的operation

operations对应于我们需要进行权限管理的所有具体操作的名称(例如某个具体的action,我们只允许某个role来访问)

配置好role/task/operation之后,将operations分配给各个task,然后再将tasks分配给具体的role,每个user都可以指定单独的role,实现其权限的赋予。这些,通过界面中的clip_image006按钮来实现。

clip_image008

clip_image010

clip_image012

另外,Srbac还有用户查询界面,可以方便的对用户进行详细权限的查询:

clip_image014

五、Srbac的数据库表

clip_image016

其中,user表是我们系统的用户表,其中包含我们项目用户的基本信息,我们可以根据项目的实际需求来配置user表,但需要注意的是,我们需要有一个识别用户的唯一字段,我们习惯使用user的id来判断用户的身份:

clip_image018

auth_item_child表用来记录role/task、task/operation之间的继承关系:

clip_image020

auth_item表是存储我们新建role/task/operation的类型、备注、业务规则等:

clip_image022

auth_assignment表中记录着各个role与user表中的用户id对应情况:

clip_image024

这几张表能够确保我们可以对每个用户的权限进行精确地管理。如果项目需要,我们也可以对这些表进行自由的调整,比如将auth_assignment表中的字段插入user表中,使用user表进行角色的查询等等。

 

上一张RBAC工作流程图:

 

 

End.

posted @ 2014-04-03 10:53  lianche  阅读(774)  评论(0编辑  收藏  举报