【发布时间】:2014-11-13 19:34:07
【问题描述】:
在 yii2 中,我还需要一些记录级别的 RBAC 访问控制。作为一个 yii2 初学者,我正在寻找输入逻辑的最佳点,但在文档中挣扎。
例子:
- 一个表Children提到了一个child,除了很多其他children。
- 一个孩子通常在Parents表中有两个父母。
- 除了使用 yii2-admin/user 进行其他访问控制之外,这两位家长可以查看和操作他们自己的孩子/ren 但不能查看和操作其他人的记录。
- 登录的用户是父母。
示例表儿童:
|id|name|age|
|1|Max|10|
|2|Moritz|11|
|3|Lena|8|
...
示例表父母:
|id|relation|name|
|1|mother|Anna|
|2|father|Paul|
|3|mother|Lisa|
...
示例表Xref(与孩子和父母的关系):
|child_id|parent_id|
|1|1|
|1|2|
|2|3|
|3|1|
|3|2|
...
我认为 activeRecord 类 Children 是适合这种行为的地方,对吧? 是否有人有示例代码可以为我指出正确的方向以获得有效的代码, Paul 和 Anna 可以在哪里修改“Max”的记录,但不能修改“Moritz”的记录?
【问题讨论】:
-
在记录层上使用 RBAC 通常被认为是糟糕的设计。在您的情况下,您可能应该有一个
ActiveRecord方法,它将用户id作为参数并返回孩子。 RBAC 级别过滤(是否可以写/查看)应该在控制器级别。 -
我同意,并感谢您的提示。作为 yii 的初学者(不是编程的初学者),我想要求提供一个代码片段作为示例,以便了解情况。你能帮忙吗?
标签: activerecord yii2 rbac