是否可以根据关系获得权限?

时间:2013-04-06 12:17:27

标签: php yii authorization

Yii中的权限系统 - 据我所知 - 就像内容管理系统中的不同角色:特定角色(EG主持人,作者,管理员等)可以执行特定操作,也可以不执行。

然而,我想要的是不同的。我希望用户能够设置与他们有特定关系的人是否可以执行特定操作。例如,用户应该能够说只有他的朋友可以看到他的个人资料,或者企业可以说只有该企业的特定员工(例如,用户ID为4)才能添加产品。

这可能是使用Yii的授权系统,还是我需要实现自己的系统?

另外,作为一个附带问题,我想要的是否有一个名字,以便下次我不会写四行来解释它? : - )

1 个答案:

答案 0 :(得分:1)

你想要的确有一个名字。它被称为business rules。在您的情况下,您可以创建一个RBAC任务或操作,如viewFriend,并将其与业务规则相关联。如果当前访问者是您要显示其个人资料的用户的朋友,则在该规则中您将检查。

您需要在个人资料的查看操作中检查此权限。对于权限检查,您可以将参数传递给此规则。在您的情况下,这可能是您要查看的配置文件的用户ID。