如何续订yii RBAC任务

时间:2014-04-19 16:04:45

标签: php yii rbac

我正在研究一个简单的yii RBAC管理器。所有RBAC数据都存储在数据库中,一切正常,但......

当我决定管理RBAC任务时,我遇到了麻烦。例如,我将操作“myNewOperation”分配给用户“admin”。一切顺利,accessControll和checkAccess()完成他们的工作。然后我决定从数据库中删除赋值记录,但仍然显示accessControll和checkAccess(),该用户具有此类权限。我试图注销,清除缓存,销毁会话和清除cookie,但没有任何改变。用户“admin”仍具有权限“myNewOperation”,但“myNewOperation”已从赋值表中物理删除。有什么不对?

1 个答案:

答案 0 :(得分:0)

是的,我找到了原因。它需要我在CDbAuthManager中翻找才能理解它。 我在角色关系中犯了一个逻辑错误。我使用默认角色“authenticated”,因此所有经过身份验证的用户都自动拥有该角色。我从这个角色创建了一个子操作。通过yii逻辑,如果找不到访问权限,则将在父分支上继续搜索。所以我删除了作业,但已经“认证”为父母,这就是为什么我总是有“真实”的价值。谢谢。