Discourse在哪里设置用户上传文件的权限

在 Discourse 中,用户上传文件的权限设置并没有集中在一个单一的“开关面板”中,而是分布在文件类型与大小限制新用户防滥用限制,以及需要依赖组件的特定用户组限制中。

以下是具体的设置位置和操作指南:

1. 基础设置:控制可上传的文件与大小

进入 Discourse 后台管理界面 (Admin) → 设置 (Settings)。你可以直接在搜索框中搜索以下配置项代码:

  • authorized extensions (授权的扩展名):在此处填写允许普通用户上传的文件后缀(例如 jpg|png|pdf|zip)。注意:如果你清空此列表,等于彻底禁用了所有人的本地上传功能。
  • authorized extensions for staff (员工授权扩展名):专门为管理员和版主开放的上传白名单。你可以借此允许员工上传普通用户被禁用的特殊格式(如 mp4, csv 等)。
  • max image size kb (最大图片大小) & max attachment size kb (最大附件大小):设置允许上传的单文件最大体积(默认最大上限通常为 30720 KB 即 30 MB,如需更大通常建议使用云存储链接)。

2. 信任级别控制:限制新用户上传

Discourse 默认规则是:只要用户达到 Trust Level 1 (基础用户),即可上传 authorized extensions 允许的所有文件。如果你只想防范刚注册的 Trust Level 0 (新用户) 滥发文件,请在设置中搜索:

  • newuser max images (新用户最大图片数):限制新用户在一篇帖子中最多能上传几张图片。如果设为 0,则新用户完全无法上传图片。
  • newuser max attachments (新用户最大附件数):限制新用户在一篇帖子中能包含的文件附件数量。设为 0 则禁止发附件。

3. 高阶控制:仅允许特定“用户组”或“高等级”上传

如果你希望实现更严格的权限隔离(例如:“只有付费 VIP 用户组才能上传文件” 或 “只有 Trust Level 2 以上的核心用户才能上传”),Discourse 的原生后台设置无法直接完成此操作。你需要安装官方的主题组件 (Theme Component) 来实现:

  • 在后台前往 自定义 (Customize)组件 (Components)安装 (Install)
  • 选择通过 URL 导入,输入官方推荐组件的仓库地址:https://github.com/tshenry/discourse-restrict-uploads (组件名为 Restrict uploads)。
  • 安装并将其添加到你的默认主题中。
  • 进入该组件的设置页面,你就可以指定允许上传的最低信任级别特定的用户组。不满足条件的用户,发帖编辑器中的“上传”图标将会被隐藏,同时也无法进行拖拽上传。
1 个赞