Yii2:根据权限隐藏搜索结果
Yii2: Hide search results based on permission
在我的 table 我有:
PRODUCT
id_product
name
status
其中状态采用以下值:
1 (Active)
2 (Inactive)
3 (Archived)
在产品索引视图中,我希望用户根据权限查看某些状态。示例:
- 管理员看到状态为 1、2 和 3 的记录。
- 版主观点:1 和 2
- 用户观看次数:1
我该怎么做?我有什么选择?
您可以在搜索模型中添加条件(我猜您有一个 ProductSearch.php 文件),以便根据用户的角色过滤结果。
我从未使用过 Yii 的 RBAC,但我想您有一种获取用户角色的方法,如下所述:
因此,在您的搜索模型中,我会在网格过滤条件之后添加一个或多个条件:
if($isUser) {
$query->andFilterWhere([
'status' => 1,
]);
}
elseif($isModerator) {
$query->andFilterWhere(['or',
['status' => 1],
['status' => 2]
]);
}
如果你需要的话,我可以给你更详细的答案。
在我的 table 我有:
PRODUCT
id_product
name
status
其中状态采用以下值:
1 (Active)
2 (Inactive)
3 (Archived)
在产品索引视图中,我希望用户根据权限查看某些状态。示例:
- 管理员看到状态为 1、2 和 3 的记录。
- 版主观点:1 和 2
- 用户观看次数:1
我该怎么做?我有什么选择?
您可以在搜索模型中添加条件(我猜您有一个 ProductSearch.php 文件),以便根据用户的角色过滤结果。
我从未使用过 Yii 的 RBAC,但我想您有一种获取用户角色的方法,如下所述:
因此,在您的搜索模型中,我会在网格过滤条件之后添加一个或多个条件:
if($isUser) {
$query->andFilterWhere([
'status' => 1,
]);
}
elseif($isModerator) {
$query->andFilterWhere(['or',
['status' => 1],
['status' => 2]
]);
}
如果你需要的话,我可以给你更详细的答案。