权限管理有很多解决方案:
RBAC(Role-Based Access Control)就是其中一种而已。
Yii支持RBAC
在学习Yii的RBAC之前,一定要先知道Yii有个filter。Yii::filter是我们学习Yii时控制访问权限时最先遇到的。同时也正是因为它,给我们学习中造成了很多疑惑。
Yii的filter是一个过滤器类,正如其名它所做也就是过滤这个那个的。其中filter有一个方法是专门针对controller访问控制过滤的,就是filter:accessControl方法。他可以通过用户名,ip,角色什么的进行控制。
回过头来说Yii的RBAC可以单独使用(如:Yii::app()->user->checkAccess(role)),也可以和Yii:filter结合使用。
换个角度看,Yii进行访问控制可以使用轻量级的Yii::filter,也可以使用Yii;;RBAC。
如果上面说的都理解了,就是具体使用的问题了。我遇到两个问题比较头疼,一个是怎么权限初始化。另一个是,是不是在用户登录时赋予用户角色,并该如何赋予。
第一个问题,貌似可以用SRBAC,Yii的一个extension来解决