Yii RBAC权限控制总结


一开始学习yii的权限系统生硬的阅读yii的验证与授权,虽然明白了role-based access control的原理了。但是对于CDbAuthManager如何工作这个问题一直萦绕在心头,不能释怀。

我视图通过阅读代码解决这个问题,毕竟能力还是有限,因为没有现成的数据供参考,没法读懂程序的意思。同事rock推荐我安装srbac模块,安装后,srbac提供了一个完整的权限管理界面。并且自动创建好了三个表。界面很简单。

通过几遍操作并且不断观察三个表的变化,我逐渐理清了各个表的关系。然后,开始阅读SDbAuthManager的checkAccess()的代码。经过几遍的阅读我发现srbac的验证策略是从角色到操作的顺序。而CDbAuthManager的验证顺序则是从操作到角色的顺序。

验证的方法也很简单就是通过执行Bizrule成功就返回true否则返回false,非常方便。

Archives