You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SilverStripe的File查询中添加当前用户视图权限过滤?

解决方案

直接在你的查询链末尾添加->filterByPermission('View')方法即可,这个方法会在SQL查询层面直接过滤掉当前用户无权限查看的文件,确保返回的结果集只包含有权限的记录,分页统计、列表展示都会基于正确的数据集。

修改后的完整代码:

$files_basic = File::get()->filterAny([
    'Title:PartialMatch' => $s,
    'FileFilename:PartialMatch' => $s,
    'Description:PartialMatch' => $s,
    'DisplayName:PartialMatch' => $s
])->filterByPermission('View');

补充说明

  • filterByPermission('View')会自动处理SilverStripe的权限继承逻辑,比如文件所在文件夹的权限设置也会被纳入判断,不需要额外编写文件夹权限过滤的代码。
  • 如果需要针对特定用户(而非当前登录用户)过滤权限,可以传入第二个参数,例如filterByPermission('View', $specificMember)。

内容的提问来源于stack exchange,提问作者Will

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 03:12:40