Discourse 2.4.0.beta10 发布说明

2.4.0.beta10 中的新功能

更大的表情符号

当一行中单独出现 1 到 3 个表情符号时,它们现在会自动变大!现在您可以使用表情符号进行交流,而无需费力眯眼。

:tada::fireworks::boom:

为一批用户授予徽章

徽章现在支持“批量授予”,允许管理员上传用户邮箱列表,从而为这些用户授予徽章。详细信息请参阅:

MaxMind DB 下载现在需要许可证密钥

Discourse 使用免费的 MaxMind GeoLite2 IP 数据库来为用户和管理员提供位置信息。这支持了诸如用户偏好设置中的“最近使用的设备”以及用户管理页面中的 IP 查询等功能。由于 CCPA 要求的变化,MaxMind 已更改下载流程。现在,管理员必须注册账户并获取(免费)许可证密钥才能下载该数据库。更多详情见:Upgrade / Rebuilds Fail due to MaxMind DB EOL - #23 by sam

Internet Explorer 11 弃用

Discourse 将于 2020 年 6 月 1 日停止支持 IE11。强烈建议用户切换到受支持的浏览器,以继续无中断地使用 Discourse。Discourse 将开始在网站顶部向用户显示 IE11 支持即将结束的警告。详细信息请参阅:Discourse is ending support for Internet Explorer 11 (IE11) on June 1, 2020

CSP 默认启用

2019 年初,Discourse 首次支持内容安全策略(CSP),这是一种额外的安全层,有助于检测和缓解某些类型的攻击,包括跨站脚本(XSS)和数据注入攻击。过去一年中,CSP 已为新站点启用,但旧站点除非管理员明确操作,否则不会启用 CSP。从 beta10 开始,CSP 将默认对所有站点启用,除非管理员明确禁用(强烈不建议)。运行外部脚本(例如 Google Analytics、广告、跟踪等)的站点可能需要进行配置更新以确保持续正常工作。有关 CSP 的详细信息以及如何配置脚本使其正常工作,请参阅:Mitigate XSS Attacks with Content Security Policy

安全更新

此测试版包含 4 项由我们社区和 HackerOne 报告的安全修复。强烈建议各站点进行更新以应用这些补丁。

  • 使用 U2F / TOTP 的双因素认证
  • 解析备份元数据时使用严格的 JSON 解析
  • 改进双因素认证逻辑
  • 与暂存用户和已关闭类别相关的隐私泄露问题
30 个赞

更多更新!

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

插件改进

日历

  • 改进假期分组
  • 多项用户体验改进
  • 添加时区选择器
  • 添加 Google 日历链接
  • 错误修复

翻译器

  • 添加 Yandex.Translate 支持

OpenID Connect

  • 尊重 IDP 提供的 email_verified 布尔值
  • 允许参数从 /auth/oidc 传递给 IDP

GitHub

  • 添加对 GitHub 问题的支持
  • 错误修复

WP Discourse

  • 修复“在新标签页中打开链接”设置未应用于“加入讨论”链接的问题
  • 加载插件文件时使用 WPDISCOURSE_PATH 常量

年度回顾

  • 从用户统计计算中排除 read_restricted 分类
  • 西班牙语支持
  • 用户体验改进
  • 错误修复

广告插件

  • 支持 Google Ad Manager 中的流体广告尺寸
  • 错误修复

聊天集成

  • 在 Discord 负载中包含分类标题和颜色

投票

  • 用户体验改进
  • 错误修复

策略

  • 错误修复

团队建设

  • 错误修复

JWT

  • 错误修复

样式指南

  • 错误修复

RSS 轮询

  • 错误修复

签名

  • 错误修复

SAML

  • 错误修复

工具提示

  • 错误修复

代码审查

  • 错误修复

Onebox

  • 错误修复

加密

  • 错误修复

分配

  • 错误修复

Cakeday

  • 错误修复

已解决

  • 错误修复

数据探索器

  • 错误修复

用户笔记

  • 错误修复

附加功能和修复

点击展开

新功能

  • 导出所有类型的报告
  • 恢复后 7 天删除“备份”架构
  • 安全媒体:允许通过分类级隐私和基于帖子的访问规则进行重复上传
  • 允许在全局通知中定义忽略持续时间
  • 添加隐藏设置以禁用库存存储桶的配置
  • 向用户选择器传入排除的用户名
  • 使用新的徽章 API
  • 添加禁用安全媒体的 rake 任务
  • 主题管理菜单在移动设备上固定到底部
  • 允许插件添加全局通知
  • 允许对推翻的处罚进行 TL3 晋升
  • 允许插件传递复杂的帖子参数
  • 添加 mybb.ru 导入脚本
  • 打开主题管理菜单的键盘快捷键

错误修复

  • 使用新的标签路由
  • 解决 jquery.autoellipsis 中的限制
  • 提高头部中用户卡片的 z-index
  • 不从引用和 Onebox 中提取日期
  • 允许应用程序生成和接受更长的备份代码
  • 徽章授予器中的区域设置不正确
  • 当添加标签或分类时,通知用户主题已修改
  • 当 aside 标签没有 class 属性时,不要在摘要中报错
  • 使主题查询包含子子分类中的主题
  • 使分类选择器显示所有父级分类
  • 用户应能够移除其主要群组
  • 不要在每次访问个人资料偏好设置时覆盖时区
  • 不要因 reply_id 列的重命名而引发异常
  • 在停靠的头部中显示私信图标
  • 将正确的样式应用于图标并尝试简化代码
  • 不要在 Markdown 表格中增加表情符号的大小
  • 扩展标志时重新加载 ReviewableScore 类型
  • 在新/未读计数中包含子子分类
  • 将其他公共上传更改为非安全上传
  • 群组分页已损坏
  • 更改分类选择器中的 rootNone 行为
  • 为叙事机器人意大利语区域设置添加缺失的翻译键
  • 个人资料模态框中特色主题的样式
  • 如果主题删除失败,显示错误消息
  • 正确地在段落内包装图像和调整大小控件
  • 主题删除失败时提供更好的错误消息
  • 仅为公开帖子创建帖子通知
  • 群组成员泄露
  • 当使用无效用户名按用户名过滤群组时,抛出正确的 NotFound 异常
  • 查看其他用户的群组时,根据当前用户的可见性正确过滤群组
  • 当登录用户禁用群组目录时,针对 groups_controller#index 编写规范
  • groups_controller.sortable 规范实际测试所有排序组合
  • 重写“查看其他用户的群组”规范,以测试所有 group_visibility 和 members_group_visibility 组合
  • 确保当路由更改时群组导航状态发生变化
  • 确保用户通知移动导航的次要菜单重新加载
  • 插入后更新用户选择器的排除用户名
  • 批量授予徽章时更新特色徽章排名
  • 将 padStart/padEnd 移回核心 polyfills
  • 使用旧文件名的规范
  • discourse-internet-explorer 使用 CDN
  • 在作曲家保存时移除内边距
  • 在 user-selector-test 上运行 prettier
  • 当 URL 以斜杠结尾时使 ‘findBySlugPathWithID’ 生效
  • 防止在 iOS 上粘贴文件时粘贴文件 URL
  • 不要在测试期间记录已认领主题的数据库错误
  • 在 Reviewable 冲突时停止在 postgres 中记录错误
  • 解压大量小文件会触发错误
  • 允许用户更改非英语区域设置中的标题
  • 认证后不要重定向到 /auth/* URL
  • 如果管理员 SSO 同步没有外部 ID,不要抛出错误
  • 不要在 user-activity-drafts 中泄露事件监听器
  • 允许 omniauth 确认页面传递 GET 参数
  • 向用户个人资料页面添加 noindex 标头
  • 使滚动到主题中的底部帖子更加一致
  • 确保我们一致地为基准选择同一个主题
  • 移动发现页面上的 OnScroll 方法未定义
  • 当启用 mute_all_categories_by_default 时的 Topic_tracking_state
  • 使用“删除帖子 + 回复并同意”选项时,仅同意第一个帖子
  • 缓存的新主题数据在忽略新主题后不应被删除
  • 在常规分类中忽略新主题后的新/未读计数
  • 允许在加载时滚动发现主题列表
  • 批量插入以创建应用程序请求
  • 批量插入以创建主题
  • 无需为每个主题、帖子等创建单独的用户
  • 另一个 ApplicationRequests 的批量插入
  • 在不必要时不要创建用户和主题实例
  • 将具有昂贵设置的示例合并为一个示例
  • MaxMind DB 文件下载不正确
  • 在 html 到 Markdown 转换中保留 ‘rb’ 和 ‘rp’ 标签
  • 确保 qunit 的 CSP 关闭
  • 在分类页面显示未分类的描述
  • 汉堡菜单中未分类的描述为空
  • 添加空白投票选项验证
  • 当向管理员报告提供无效日期参数时不要返回 500 错误
  • 下载上传文件时允许文件扩展名中包含下划线
  • 在懒加载图像时正确计算 Onebox 高度
  • 任何全局通知文本都可以包含 HTML
  • 机器人的准确率应为零
  • 在通配符 URL 检查器中允许任何协议
  • 当 MIME 类型错误时避免多余的日志记录
  • 在极少数情况下,保存新草稿可能会暂时出错
  • 当为安全密钥提供未知的 COSE 算法时捕获错误
  • 每个区域设置的触发命令不同,请予以考虑
  • 仅在移动设备上有操作时才显示管理员扳手图标
  • 点击正确的扳手时不要在管理员工具上显示斗篷
  • 管理员主题菜单的视觉改进
  • 延长缓存 MaxMind DB 的时间
  • 即使提及包含额外元素,点击时仍打开卡片
  • “已审查”状态过滤器应包含已删除的元素
  • 当分类没有主题时正确更新主题/帖子计数器
  • 使突出显示最后查看的主题更加健壮
  • 正确样式化 PWA 同意横幅
  • 允许全局通知站点设置包含 HTML
  • Cache_critical_dns 在没有 IPAddr 时出错
  • 正确样式化 notification-consent-banner
  • 跟踪正确的站点设置
  • 英语和美式日期/时间格式
  • 论坛处于只读模式时提供更好的错误消息
  • 将 normalize css 从 3.0.1 更新到 8.0.1
  • 更正“出于爱”徽章的描述
  • 当 on_vote 和 closed 时,所有人都可以看到投票结果
  • 撤销徽章作为标题时的错误
  • 分类路由模型参数应解码其 URL 部分
  • 如果 slug 生成方法已编码,确保只编码一次 slug
  • 给扩展的 CSS/HTML 编辑器赋予 >0 的高度
  • 注册表单上的标签助手未隐藏
  • 移除 rerenderTriggers
  • 在直接回复中移除完整的嵌套引用
  • 显示注册输入提示并改进间距
  • 限制请求并在报告已弃用图标时包含数据

用户体验变更

  • 用户离开私人群组时必须确认
  • 对选择主题模态框进行微调
  • 改进私信标题编辑的外观
  • 改进移动个人资料中列表和用户字段的外观
  • 确保所有生成的备份代码都显示在屏幕上
  • 当 CSV 无效时返回更友好的错误,并添加取消按钮返回到 /badges 视图
  • 更新 IE11 弃用警告,并默认启用
  • 向用户传达结果
  • 在移动个人资料上居中显示特色主题
  • 移除对分类框链接的 JS 依赖
  • “带子分类的框”中的子子分类 + 一致性
  • 修正分类搜索优先级的验证消息
  • 临时修复(CSS 还原),直到 flex 的翻译准备好
  • 针对子子分类对分类页面样式进行一些调整
  • 不要将头像用作回复的备用 OpenGraph 图像
  • Invites#show 无法使用 json 请求,且配置不当
  • 通知/跟踪状态的新铃铛图标

性能优化

  • 缓存特色徽章的排名,以简化用户序列化
  • 序列化忽略/静音信息时减少数据库查询
  • 在当前用户对象中缓存被忽略和静音的用户 ID
  • 在 guardian 中检查忽略/静音权限时避免数据库查询
  • 在 user_stats 表中缓存用户徽章计数
19 个赞