Yii 哎。基于角色获取用户

Yii 哎。基于角色获取用户,yii,rbac,Yii,Rbac,我正在使用nativeCDbAuthManager在我的webapp中实现RBAC。如何获取所有具有角色权限的用户?假设我有一个名为updateprofile的角色。我希望获得分配给该角色的所有用户。我搜索了文档,找不到函数 (我知道我可以遍历所有用户模型,并在foreach循环中执行checkAccess(),但我更喜欢更好的解决方案)我发现最简单的方法是创建一个AuthAssignment模型,该模型映射到您的auth\u分配表。然后,您可以为它设置关系、范围等,并使用它进行查询以检索所有用

我正在使用native
CDbAuthManager
在我的webapp中实现RBAC。如何获取所有具有角色权限的用户?假设我有一个名为
updateprofile
的角色。我希望获得分配给该角色的所有用户。我搜索了文档,找不到函数


(我知道我可以遍历所有用户模型,并在
foreach
循环中执行
checkAccess()
,但我更喜欢更好的解决方案)

我发现最简单的方法是创建一个AuthAssignment模型,该模型映射到您的auth\u分配表。然后,您可以为它设置关系、范围等,并使用它进行查询以检索所有用户模型。auth_分配表没有什么特别之处(因为它主要是其中的角色)。

我发现最简单的方法是创建一个映射到auth_分配表的AuthAssignment模型。然后,您可以为它设置关系、范围等,并使用它进行查询以检索所有用户模型。auth_分配表没有什么特别之处(因为它主要是其中的角色)。

代码类似

class AuthAssginment extends CActiveRecord{.....
    public function getUsersBaseOnRole($role) {
         return Yii::app()->db->createCommand()
                    ->select('userid')
                    ->from($this->tableName())
                    ->where('itemname=:role', array(
                        ':role' => $role,))
                    ->queryAll() ;


}....
代码式

class AuthAssginment extends CActiveRecord{.....
    public function getUsersBaseOnRole($role) {
         return Yii::app()->db->createCommand()
                    ->select('userid')
                    ->from($this->tableName())
                    ->where('itemname=:role', array(
                        ':role' => $role,))
                    ->queryAll() ;


}....

我认为其他回复并没有给您提供完美的结果,因为角色可以是分层的,因此,您不能使用直接查询或关系。我的有效解决方案是:


我认为其他回复并没有给您提供完美的结果,因为角色可以是分层的,因此,您不能使用直接查询或关系。我的有效解决方案是:


如果您喜欢更好的解决方案,则应使用此扩展:如果您喜欢更好的解决方案,则应使用此扩展: