如何续订yii RBAC分配


How to renew yii RBAC assignments

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

当我决定管理RBAC分配时,我遇到了麻烦。例如,我将操作"myNewOperation"分配给用户"admin"。一切都很顺利,accessControll和checkAccess()完成了它们的工作。然后我决定从数据库中删除分配记录,但accessControll和checkAccess()仍然显示,用户拥有这样的权限。我尝试注销、清除缓存、销毁会话和清除cookie,但没有任何改变。用户"admin"仍然拥有"myNewOperation"权限,但"myNewOperations"已从分配表中物理删除。可能出了什么问题?

是的,我找到了原因。我需要在CDbAuthManager中查找才能理解它。我在角色关系上犯了一个合乎逻辑的错误。我使用了默认角色"authenticated",所以所有经过身份验证的用户都自动拥有该角色。我从这个角色创建了一个儿童操作。根据yii逻辑,如果没有找到访问权限,将继续在父分支上进行搜索。所以我删除了作业,但已经"认证"为家长,这就是为什么我总是有"真正"的价值。非常感谢。