2012-02-26 95 views
1

在Yii RBAC中,有可能获得有多少用户有权限执行x的计数信息?计算有多少用户有权限执行x操作?

我的意思是,一个能写会的方法:在分配Db的

  • 检查所有用户,
  • 递归添加所有具有父权限的用户,
  • 并排除重复的ID。

但是有没有预制的方法来做到这一点?提前感谢您的任何想法。

+0

由于Yii RBAC模式的构建,我觉得可能有这样的数据存在问题:例如'authitemchild'表使用非常简单的父子结构,这使得它很难遍历。 – Sebastian 2012-02-26 16:32:42

回答

0

部分答案。
它不应该是很困难的只是检查计,因为你可以检查authAssignment表,也许不喜欢一些SQL查询:

SELECT COUNT(*) FROM `AuthAssignment` WHERE itemname = 'PermissionXname'; 

其他的事情需要一些想法,但不是不可能的,如果我得到它,我会让你知道。

虽然我不确定是否有内置方法。

+0

回想起来,我不确定你的问题中这3点意味着什么。请详细说明您是否可以。 – 2012-02-26 18:58:08

+0

感谢您的回答,bool.dev。在第一篇文章中,这三点是关于在选择分配的用户之前获取父权限的。这是最难的部分(遍历权限树)。然后,您可以通过“DISTINCT/UNION”MySQL语句选择或统计所有唯一用户。 – Sebastian 2012-02-26 21:31:20

+0

嘿,如果可以的话分享你的rbac层次结构,那么也许它会更容易理解,你可以在你的例子中给出像role1,task1,operation1这样的名字,并且明确地指定父类。如果您可以将其作为图片进行分享,则效果更好你可以在问题中上传图片。 – 2012-02-27 09:48:45

相关问题