关于rbac action之后的权限

强哥:

你好,首先感谢您为我们大家提供了这么优良的框架。 :rolleyes:

呵呵,我的问题是这样的,现在公司的文章系统,分为了几个栏目,而目前的rbac的accessrules方法,只能匹配到每个action方法。

但是同一个action不同栏目的这种权限现在的rbac是不是无法实现呢?比如若干管理员他们每个人只能添加其中一个栏目的,但公用的是同一个文章系统,这样的权限判断是否必须手动完成,还是已经有成熟的解决方案了呢?

你可以重写权限验证类,yii的组装是很灵活的。我就是这样解决的rbac权限问题。

什么解决方案?能分享一下思路 ?

基于accessrules的验证是针对每个action的,所以对你来说粒度太大。你应该考虑用Yii::app()->checkAccess()。当你建立好role-task-operation层次结构以及针对不同用户分配好role后,你就可以在适当的地方调用checkAccess(),判断当前用户是否能执行特定的operation。