【问题标题】:How to renew yii RBAC assignments如何更新 yii RBAC 分配
【发布时间】:2014-04-19 16:04:44
【问题描述】:

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

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

【问题讨论】:

  • 可能他还有其他一些权利,包括这些权利?
  • 不,我清空了整个作业表,但这种魔法仍在发生
  • 显示 accessControll 和 checkAccess

标签: php yii rbac


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    • 2013-04-22
    • 2015-11-12
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 2012-06-23
    相关资源
    最近更新 更多