Discourse 2.4.0.beta9 发布说明

2.4.0.beta9 中的新功能

个人资料中的特色主题

用户现在可以选择一个希望在个人资料中展示的主题。该主题将显示在用户的用户卡片上,也会出现在其个人资料页面。用户可以在“偏好设置”的“个人资料”选项卡中添加主题。

从 CSP 中移除 unsafe-eval

我们始终致力于让 Discourse 更加安全。去年年底,我们为 Discourse 添加了对内容安全策略(CSP)的支持。CSP 有助于缓解跨站脚本(XSS)攻击,这是最常见的 Web 漏洞之一。为了全面支持现有的 Discourse 功能和插件,我们之前包含了 unsafe-eval 指令。现在,我们已从 Discourse 生产环境及官方插件中移除了所有对 eval() 的使用,因此也从 CSP 中移除了 unsafe-eval,使我们的 CSP 更加严格。

在数据库中哈希化 API 密钥

API 密钥仅在创建时可见。此后,数据库中仅存储前四个字符用于标识,并存储完整密钥的 SHA256 哈希值。这使得密钥的使用更易于审计,并确保即使发生数据库泄露,攻击者也无法访问实时站点。

将 Internet Explorer 支持移至核心插件

Discourse 将于 2020 年 6 月停止支持 Internet Explorer(正式公告将于 1 月中旬发布)。为此,我们已将 Internet Explorer 专用代码移至一个插件中,以便在 6 月到来时更容易将其移除。

当主题组件已安装但未添加到主题时发出警告

在创建或安装主题组件时,用户可能会忘记需要将其添加到某个主题才能激活。仅在首次创建或安装后,如果用户尝试在尚未将主题组件添加到主题的情况下离开该组件页面,系统将发出警告。

32 个赞

还有更多!

但等等,还有更多!我们尽最大努力为您突出显示新功能和变更,但变更总是太多,无法一一详述。有关新功能、错误修复、用户体验改进等的完整列表,请务必查看下面列出的“附加功能和修复”。

安全更新

此测试版包含 6 个安全修复,针对由我们的社区和 HackerOne 报告的问题。

  • 撤销用户 API 密钥时修正权限检查
  • WildcardUrlChecker 中的漏洞
  • 升级 rack-mini-profiler 以避免可能的 XSS
  • 从 SVG 文件中移除事件处理程序
  • 确保只有图像上传可以内联
  • 将 puma 从 3.12.1 升级到 3.12.2

插件改进

BCC

  • 错误修复

数据探索器 (Data Explorer)

  • 添加额外的枚举
  • 改进信息弹出窗口显示

RSS 轮询

  • 错误修复

投票

  • 错误修复

已解决 (Solved)

  • 错误修复

Docker 管理器

  • 安全修复: 更新依赖项

GitHub

  • 错误修复

用户备注

  • 错误修复

群组跟踪器

  • 用户体验改进

站点地图

  • 错误修复

策略

  • 错误修复

日历

  • 显示未来 6 个月的节假日,而不仅仅是下一个节假日
  • 改进全天事件的时区逻辑
  • 自动删除对已被自动删除的帖子的直接回复
  • 性能改进
  • 错误修复

加密

  • 错误修复

Logster

  • 支持自定义分组模式
  • 错误修复

附加功能和修复

点击展开

新功能

  • 使“重新排序分类”支持嵌套分类
  • 在 rake admin:create 中密码不匹配时添加消息
  • 添加站点设置以移除 X-Frame-Options 头。

错误修复

  • 为 IE11 包含 Symbol 垫片
  • 只读检查的 IE11 兼容性
  • 为第二级分类显示父分类和子分类
  • 防止 AJAX 请求后 IE11 出现错误
  • 为 IE11 添加缺失的 Object.entries 垫片
  • 创建新主题或帖子时显示新/未读按钮
  • 并行规范系统需要为每个工作进程分配专用的上传文件夹。
  • 将 IE 特定的 CSS 规则移至 discourse-internet-explorer 插件
  • 为非工作人员移除 ‘staff_only’ 结果选项
  • 修复 choose-topic 组件以按 URL 搜索
  • 避免使用 String.matchAll 以支持 IE11
  • 使用 updated_at 日期表示过期的邀请
  • 防止 discourse_tagging 在空术语时崩溃
  • 如果美化后的 slug 是数字,则返回默认值
  • rotp gem 的 Require: false
  • filterCategory 中的分类 ID
  • 在获取 ID 之前确保 currentUser 存在
  • 如果单独运行 db:migrate,它应该加载环境
  • 迁移路径被遗忘
  • 允许 IE 脚本通过 CDN 加载
  • 授予工作人员状态应自动批准等待审批的用户
  • 插入相同主题组两次时的约束错误
  • 缓存短上传 URL
  • 禁止将 c 作为标签
  • 禁止将 none 作为分类 slug
  • 如果 SiteSetting.enable_bookmarks_with_reminders,则在帖子菜单中隐藏旧的书签按钮
  • 替换已弃用的 URI.encode、URI.escape、URI.unescape 和 URI.unencode
  • 更新 S3 存根以应对更多 aws-sdk API 变更
  • 为主题/组件添加新的内容类型
  • 如果用户不存在,不要抛出错误
  • 防止自由空间检查中出现科学计数法
  • 始终在快速访问项中添加用户名 span
  • 重新排序分类无法工作
  • mini-tag-chooser 中的标签按字母顺序排序
  • 标签输入未显示所有前 5 个允许的标签
  • 确保 slug 和 id 不是数组
  • 静音标签被 TopicTrackingState 尊重
  • 更新主题时不要尝试创建空标签
  • openComposerWithTopicParams 中的默认草稿键
  • 优化 Onebox 中的图像
  • 不要在代码块中自动补全分类或表情符号
  • 对于非 UTF-8 用户代理,不跟踪爬虫请求
  • 如果值为“否”,则在强制双因素更改时跳过验证
  • 在调用表情符号时避免在 iOS 上取消固定编辑器
  • 忽略发送给邮件列表镜像的邮件的 DMARC
  • 带有句点的图像文件名在编辑器 Markdown 中显示不正确
  • 重定向到首选项的登录页面已损坏
  • 重定向到 /login-preferences 在子文件夹中不起作用
  • 匿名缓存回归
  • 导出投票 UI 应仅对管理员显示

用户体验变更

  • 改进分类列表中的子子分类样式
  • 在分类列表中显示曾孙分类
  • 防止帖子管理菜单出现在原始帖子的标题下方
  • 降低隐藏主题内容的不透明度,但不降低控件的不透明度
  • 对管理员用户页面进行微调,以容纳长群组名称
  • 对私信收件人输入框进行微调,以增加灵活性。
  • 增加移动端的组合框点击区域
  • 复数化“点赞/已读”
  • 改进 Firefox 中社交登录/注册按钮的对齐方式
  • 图像灯箱的 z-index 需要高于模态框的 z-index
  • 改进“移动到主题”和“移动到消息”模态框的文案
  • 在可提及群组集中包含公开群组
  • iOS 注册模态框的小修复
  • 标签组合框样式应与主题上的标签匹配
  • 标签信息的微小样式更新
  • 尝试使图表加载不那么卡顿
  • 从上传模态框中移除“显示更多”
  • 移除移动用户卡片的头像动画
  • 移除用户标题的双重编码。
19 个赞