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

Directus 9文件权限设置:私密对话附件访问限制及mine权限配置

Directus 私信附件权限控制解决方案

一、对话附件访问限制优化(替代单对话建用户组方案)

你之前的单对话创建用户组的方案扩展性极差,对话量级上涨后会出现用户组数据爆炸、权限维护成本指数上升的问题,可通过字段关联+自定义权限规则的方式实现需求:

  • 首先为系统预置的directus_files集合新增2个关联字段:conversation_id(关联你的私信对话集合主键)、related_message_id(关联对应私信条目主键,可选,用于更细粒度的权限控制)
  • 进入Directus后台「设置>权限>对应认证用户角色>文件(directus_files)>读取权限」,选择自定义权限规则,写入如下逻辑:
    {
      "_or": [
        // 匹配当前用户为对话发起方
        {
          "conversation_id": {
            "sender_id": {
              "_eq": "$CURRENT_USER"
            }
          }
        },
        // 匹配当前用户为对话接收方
        {
          "conversation_id": {
            "receiver_id": {
              "_eq": "$CURRENT_USER"
            }
          }
        }
      ]
    }
    
    注:上述规则中的sender_id、receiver_id需要替换为你自己的对话集合中存储对话双方用户ID的实际字段名
  • 上传私信附件时通过Directus接口钩子自动填充conversation_id和related_message_id字段,无需手动操作即可实现权限规则自动生效。

二、文件"mine"权限配置

Directus原生支持基于上传者的"我的文件"权限校验,无需额外二次开发:

  • 进入对应角色的权限配置页,找到directus_files集合的读取/编辑/删除权限项
  • 权限规则选择$CURRENT_USER 是上传者,系统会自动匹配文件表内置的uploaded_by字段和当前登录用户ID,仅用户自己上传的文件可执行对应操作
  • 如果需要同时兼容对话附件访问权限和个人文件权限,可在自定义规则中通过_or逻辑将两种校验条件合并即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:24:02