2.8.0.beta7:安全更新、快速编辑、主题书签及更多功能

2.8.0.beta7 中的新功能

:warning: 安全修复

此测试版包含一项关键的安全修复。建议所有站点尽快更新。此修复可防止通过恶意的 SNS 订阅负载进行远程代码执行(RCE)。

快速编辑

提交帖子后,才发现需要做一个小改动?有了快速编辑功能,现在比以往任何时候都更快捷、更轻松地完成修改。无需打开完整的编辑器,只需高亮显示需要修正的单词,点击编辑,即可直接在那里进行修改。

当您和您的用户尝试此功能时,我们很乐意在 meta.discourse.org#feature 类别中听到您的建议。发现漏洞?请在 bug 中告诉我们。

请注意,快速编辑无法处理复杂的帖子内容——例如编辑表格中的多个单元格。当快速编辑无法工作时,将自动打开完整编辑器。

主题书签

现在不仅可以为单个帖子添加书签,还可以为主题添加书签。当为主题添加书签后,关注该书签的用户将自动跳转到他们上次未读的位置。当没有其他帖子被添加书签时,可以通过页脚创建主题书签。

改善“空白页综合征”

新用户以及没有帖子、点赞、通知等的用户经常会在 Discourse 内遇到“空白”页面。Discourse 现在不再显示空白页,而是即时显示信息,让用户了解最终会显示的内容。此类内容已添加到活动/主题页面、活动/阅读页面、用户消息页面以及群组消息页面中。

通过双因素认证进行管理员审批

在授予管理员权限时,如果现有管理员已启用双因素认证,系统将提示其输入认证码(或使用安全密钥)以批准权限授予。如果未启用双因素认证,将发送确认电子邮件。

允许恢复已删除的小型操作帖子

是否曾关闭一个主题并删除了创建的小型帖子,随后才发现需要它?于是您返回,打开主题,再次关闭它,以便重新获得小型帖子?现在不需要了!小型帖子现在可以像普通帖子一样恢复。

禁用主题分类编辑通知的站点设置

新增一个站点设置 disable category edit notifications,允许管理员控制是否在版主将帖子移动到不同分类时通知用户。

允许用户从单选投票中撤消投票

此前,如果用户在单选投票中做出了选择,他们只能更改投票,无法撤消。现在,用户可以使用“撤消投票”按钮,或再次选择同一选项来撤消他们的投票。

为新站点默认启用自动深色模式

Discourse 长期以来一直提供多种主题,包括深色主题。现在,新站点默认同时启用浅色和深色主题,并根据用户的设备偏好自动切换。

永久删除帖子和主题

默认情况下,Discourse 使用软删除,因此站点工作人员可以根据需要恢复帖子和主题。但有时可能需要完全删除某个帖子或主题——即从数据库中彻底移除——例如由于法律问题。为此新增了一个站点设置 can permanently delete。此设置可通过 管理员仪表板界面或具有 SSH 访问权限的管理员 访问。启用后,管理员可以永久删除帖子。管理员必须在帖子被删除后至少等待一分钟才能进行永久删除。如果初始删除是由另一位管理员执行的,则帖子可以无需等待即可被永久删除。版主没有永久删除帖子的权限。

可访问性

  • 避免输出与标题相同的 aria 标签
  • 为汉堡菜单使用更短的标签
  • 修复若干小问题
  • 为部分搜索字段和分类通知选择器添加标签
  • 为部分下拉菜单添加更具描述性的标签
  • 为下拉菜单使用 listbox 角色
  • 不默认将 aria-label 设置为标签
  • 改进创建账户模态框以适配屏幕阅读器

其他功能

此测试版包含众多新功能,我们无法一一详述。以下是部分值得注意的其他功能。您可以在以下帖子中找到完整的新功能列表。

  • 对普通用户隐藏被暂停用户的站域搜索
  • 允许用户将“未查看”设为默认视图
  • 在私信的“浏览更多消息”中显示新消息/未读消息数量
  • 将游戏主机添加到不支持的浏览器列表
  • 在用户活动中处理草稿摘录
  • 在全页搜索中显示用户/分类/标签结果
  • 人性化文件大小错误消息
  • 为引用 (q) 和快速编辑 (e) 添加快捷键
  • 停止使用电子邮件作为单点登录的用户名和姓名建议来源
  • 添加一个隐藏设置,启用使用电子邮件作为用户名建议来源
35 个赞

还有更多!

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

插件改进

众多插件

  • 错误修复
    • 我们修复了众多插件中的多个错误
  • 翻译
    • 我们更新了众多插件中的翻译

分配 (Assign)

新功能

  • 分配目标支持多态
  • 群组分配的界面更优
  • 高级搜索群组
  • 新增可分配群组选项,替代可消息发送选项

错误修复

  • 更准确且灵活的随机分配自动化
  • 当设置 SKIP_POST_DEPLOYMENT_MIGRATIONS 时进行分配表迁移
  • 已分配私密消息列表的 N+1 查询问题
  • 分配和取消分配后刷新首帖
  • Ember CLI 上的测试已损坏
  • 正确为话题查询规范生成数据
  • 允许为已分配话题提醒的频率选择“从不”
  • N+1 分配问题
  • 将已分配字段添加到建议话题序列化器
  • 当群组私密消息被归档时进行取消分配/分配

用户体验变更

  • 从元素中移除过时的 CSS 类
  • 修复群组分配页面的输入样式
  • 修复核心变更后导致的输入对齐问题

投票 (Voting)

性能

  • topic-list-item 序列化器中为私密消息排除投票字段。

工作人员笔记 (Staff Notes)

用户体验变更

  • 修复用户个人资料按钮的对齐问题

图表 (Chart)

错误修复

  • 修复因 ember-cli 和 chartjs 更新导致的回归问题
  • 添加 pluginId 以避免弃用警告

Akismet

新功能

  • 各种改进和重构

错误修复

  • 仅当存在 Akismet 状态时才显示
  • 当帖子由工作人员编辑时,不触发垃圾邮件检查

日历 (Calendar)

新功能

  • 使用默认日历保存事件

错误修复

  • 为 ‘every_two_weeks’ 添加重复翻译
  • 移除未使用的 RRuleGenerator 参数
  • 两周重复事件无法工作
  • 小型区域偏好选择问题
  • 移动端样式修复
  • 安全地设置 bulkInvites 的一个键/值
  • 与 pluginId 相关的弃用警告

用户体验变更

  • 修复日期字段重叠问题
  • 添加选项卡以在不同类型的已 RSVP 嘉宾之间筛选
  • 修复滑块外观
  • 修复长用户名导致的溢出和换行问题

数据探索器 (Data Explorer)

新功能

  • 运行时将数据探索器参数添加到 URL

错误修复

  • 修复查询分配问题

用户体验变更

  • 修复核心变更后导致的按钮对齐问题

Ssolved

新功能

  • 改善空白页面综合征
  • 为具有特定标签的话题启用已解决状态

错误修复

  • 正确导入测试辅助工具
  • 混入中的拼写错误及不正确的设置描述

性能

  • 使用 UserAction 统计已接受的答案

加密 (Encrypt)

错误修复

  • 更改搜索以完全匹配查询
  • 在上传超大文件时抛出错误
  • 改进加密帖子中的搜索
  • 改进加密话题中的搜索
  • 为 modifyClass 使用唯一的 pluginId
  • 在用户流中解密草稿
  • 取消转义私密消息快速菜单中标题中的表情符号
  • 与 pluginId 相关的弃用警告

性能

  • 在话题列表中预加载加密密钥

BCC

错误修复

  • 使用 modifyClass API 代替调用 reopen

广告插件 (Ad Plugin)

错误修复

  • 使用导入代替 Discourse 全局变量

SAML

错误修复

  • 为旧版 Discourse 在提交中固定插件

Github

错误修复

  • 检查徽章是否可以用作标题

代码审查 (Code Review)

错误修复

  • 话题列表模板应匹配核心变更
  • 通过添加 pluginId 修复弃用警告

RSS 轮询 (RSS Polling)

新功能

  • 允许为每个源设置 Discourse 标签

订阅 (Subscriptions)

错误修复

  • 在重复计划的对象根正确设置间隔字段

策略 (Policy)

错误修复

  • 缺少 pluginId 导致的弃用警告

Zoom

错误修复

  • 当同时安装类别专家插件时,帖子创建已损坏
  • CSP 问题,匿名网络研讨会可见性

共享编辑 (Shared Edits)

错误修复

  • 改进本地化和禁用状态
  • modifyClass 相关的弃用警告

反应 (Reactions)

错误修复

  • 版本号提升至 0.2
  • modifyClass 上关于 pluginId 的弃用警告

安全变更

  • 泄露私密消息和安全类别话题

保存的搜索 (Saved Searches)

错误修复

  • 我们需要导入 visit,否则测试会失败

OpenID Connect

新功能

  • 令牌端点 client_secret_post 认证,以及显式 claims

错误修复

  • 仅当已设置时才发送 claims 参数
  • 正确处理带有查询参数的 end_session_endpoint

类别专家 (Category Experts)

新功能

  • 作业:将历史帖子标记为类别专家帖子

错误修复

  • 跳过非常规帖子的处理
  • 当没有数据时不要尝试渲染按钮
  • 将帖子处理切换到 DiscourseEvent
  • 跳过历史作业中出错的帖子
  • 在类别设置中获取群组选择器的所有群组

用户笔记 (User Notes)

用户体验变更

  • 修复用户个人资料按钮的对齐问题

使用 Apple 登录 (Sign in with Apple)

用户体验变更

  • 移动端视图登录按钮的文案微调

文档 (Docs)

新功能

  • 在文档侧边栏的类别和标签中添加筛选器及字母数字排序

错误修复

  • 当参数不正确时忽略类别筛选器

用户体验变更

  • 在搜索小部件中添加“in:docs”快速提示

预设回复 (Canned Replies)

错误修复

  • isVisible 与已弃用的 Ember 属性冲突

聊天集成 (Chat Integration)

错误修复

  • 更新仪表板警告链接以指向新的 chat-integration URL

其他功能和修复

点击展开

新功能

  • 更改所有核心以使用 uppy-image-uploader
  • 在允许的属性中添加 reversed 和 type
  • 为 MessageBus 缓存 CORS 预检
  • 缓存 CORS 预检请求 2 小时
  • 向插件 API 添加 downloadCalendar
  • 添加 API 以从 TopicQuery 中排除标签
  • 将本地日期保存到日历
  • 在类别端点返回子类别
  • 使用户名建议器为仅包含无效字符的输入建议 user1, user2
  • 在类别和最新话题视图中添加更新横幅
  • 点击时显示本地日期范围
  • 移除关于新建议的重复消息
  • 使多站点配置路径可配置
  • 为私密消息发布已读话题跟踪事件
  • 允许插件扩展群组

错误修复

  • 默认关闭 verbose_auth_token_logging 设置
  • 仅在话题路由中显示搜索上下文
  • iPadOS 上的快速搜索已损坏
  • 当用户导航离开时重置 sso 邮箱和负载
  • None 行没有值,使用类来定位它
  • 超大型话题中的时间线未更新
  • 搜索“在此话题中”时不查询后端
  • 移除 ‘crawl_images’ 站点设置
  • 仅替换双引号并使用 Unicode
  • 不在电子邮件参与者列表中显示收件人用户
  • 编辑书签时澄清“无需”选项
  • 当文本区域被禁用时隐藏全屏切换按钮
  • 移动端类别和标签选择器对齐问题
  • 修正次要版本提升后的 API 版本
  • 改进快速搜索速度和结果高亮
  • 允许工作人员查看其他用户的待处理/过期邀请
  • 同时跟踪 textContent 变更
  • 装饰初始渲染后加载的帖子流中的帖子
  • 下载本地日期的改进
  • 确保嵌入式回复/回复链接在 _blank 中打开
  • 使用用户图标的群组在搜索中缺少边距
  • 尝试尽快观察预览变更
  • 尝试在筛选器中强制光标位置
  • 在搜索快捷方式中使用绝对 URL
  • BackupRestore::DatabaseRestorer 在 Ruby 3 下失败
  • 仅当用户已登录且存在群组时才显示群组筛选器
  • 从 UserAction 中提取筛选器私密消息和类别
  • 移动帖子后将 baked 版本设为 Nil
  • 仅在“最新”和“未查看”筛选器中使用类别的默认排序顺序
  • 话题时间线中帖子小操作缺少摘录
  • 移除 List-Post 电子邮件头
  • 稍后移动检查用户是否被暂停的逻辑
  • 更新翻译键以匹配旗帜原因
  • Phpbb 导入 - 附件未嵌入帖子
  • 分别处理邀请加入话题和论坛
  • 当缺少 user_stat 时 Topic_tracking_state 不报错
  • Ruby 3 不会冻结插值字符串
  • 修复非帖子上下文和长话题中的本地日期
  • 修正密码管理器的密码更改路径
  • 通过还原新快捷方式解决引用问题
  • 如果启用了 diffhtml 则禁用预览
  • 对所有浏览器应用引用选择变通方案
  • Safari 中丢失选择
  • 显示话题搜索结果时的 JS 错误
  • force_anonymous! 期间剥离 discourse-logged-in
  • 不持久化标签查询参数
  • 快速搜索中的工具提示不起作用
  • 即使配置文件存在也要检查多站点配置路径的环境变量
  • 如果没有人投票则禁用“显示结果”
  • 密码重置后隐藏表单
  • 解析嵌入式电子邮件中的地址列表
  • 当没有时间可用时修剪本地日期
  • 群组分配页面上的“全选”按钮
  • 重新启用全局设置 HTML 支持
  • 向类别显示可嵌入主机的帖子
  • 支持 Ruby 3 关键字参数
  • Ember CLI 在开发模式下始终加载管理员负载
  • Vimeo 私密视频单框已损坏
  • 使用地址比较电子邮件头
  • 导航离开后停止跟踪传入消息(第 2 版)
  • 导航离开后停止传入消息跟踪
  • 使分数原因链接构建更明确
  • 用户书签页面上的空状态消息
  • 排除用户发送给自己的私密消息
  • Topic.similar_to 在某些区域设置下导致无效查询
  • 不在移动端类别页面显示“新或更新的话题”
  • 导入远程话题时遵循规范 URL
  • 匿名用户加载建议话题时出错
  • 特别通知传入到类别和最新话题视图
  • 限制其他用户的通知路由
  • 错误的插值将每个调度/组件限制为 1 个
  • 如果私密消息话题跟踪对用户不是新的,则不发布帖子
  • 为 DiscourseRedis 支持 Ruby 3 关键字参数
  • 解决 Safari 15 createImageBitmap 错误的变通方案
  • 不在 UI 中显示 userColorSchemeId
  • 使更新横幅始终在类别视图中可用
  • 更健壮的预览 tabindex 限制
  • 确保不需要时隐藏子类别列表
  • 导航时不要错误地 _removeDeleteOnOwnerReplyBookmarks
  • 不要在旧浏览器上尝试启动 Ember 应用
  • 正确定义本地日期使用的 data-attributes
  • 功能检测 globalThis
  • include_ 序列化器方法必须以 ? 结尾
  • 使用未读帖子摘录作为话题级书签摘录
  • 使用 ActiveRecord update_attribute 代替 mini sql
  • 如果已加载则不重新加载卡片
  • 处理转发电子邮件中回复至显示名称周围的引用
  • 当没有父级时返回空数组
  • Rss gem 自 Ruby 3 起为捆绑 gem
  • 群组消息页面上的空状态消息
  • 仅更新传递的自定义字段
  • 提升换行符不应导致 HTML5 元素失败
  • 提供 site_logo_dark_url 作为深色主题选项
  • 为群组提及私密消息变体添加区域设置
  • 移除已读事件的传入消息
  • 解决 ArgumentError 以支持 Ruby 3 关键字参数
  • 防止所选内容极端溢出
  • 在打开代码块中不建议表情符号
  • 仅更新请求中存在的字段
  • 乐观修复话题时间线状态问题
  • 使用 <textarea> 进行主题翻译
  • 如果 !allowUpload 则不为移动端上传按钮报错
  • 移动端导航样式
  • 为话题时间线状态提供唯一键
  • 确保 S3 对象头在复制时保留
  • 不将私密消息归档事件发布给操作用户
  • 不尝试在持有互斥锁时迁移多站点测试数据库
  • 在 diffHTML 加载后解析短 URL
  • 修正播放图标位置
  • 不在提及和标签中替换
  • 仅当查看自己的用户时才显示未读/新私密消息链接
  • 从私密消息话题跟踪状态中移除已 dismissed 的新话题
  • 从私密消息话题跟踪状态中移除已 dismissed 的已读话题
  • 更好地定位“跳至主要内容”按钮
  • Ember CLI 在潜在错误之前被劫持
  • iOS 15 Safari 中的作曲家高度问题
  • 忽略 medium.com 单框的规范链接
  • 不在 RSS 中显示Spoiler 内容
  • 在爬虫视图中始终显示帖子创建日期
  • 修正已读话题跟踪状态的最高帖子编号
  • 更好的群组搜索筛选器
  • Ember CLI 环境中的错误
  • 捕获转发电子邮件的 CC 地址
  • 仅在可能时执行 agree_and_keep 操作
  • 为群组收件箱修正转发用户小帖子
  • 为临时上传使用随机文件名
  • 搜索未正确初始化
  • 测试之间未正确重置移动端状态
  • 不尝试与其他迁移并发迁移
  • 允许在自定义多选字段上使用单个字符串值,而不仅仅是数组
  • 增加块大小以正确获取标题标签

用户体验变更

  • 调整快速搜索输入宽度
  • 更好的话题搜索体验
  • 移动端作曲家中显示更少的工具栏图标
  • 以网格形式显示全页用户搜索
  • 更好的上下文搜索可见性
  • 在搜索下拉菜单中添加 Enter 提示
  • 添加缺失的翻译
  • title 属性存在时移除按钮的 aria-label
  • 改进用户邀请中的路由层次结构
  • 在私密消息路由上恢复移动端的新消息按钮
  • 为引用 (q) 和快速编辑 (e) 添加快捷方式
  • 为快速编辑添加键盘快捷方式
  • 为 macOS 提供更一致的快捷方式标签
  • 修复禁用标签时作曲家的对齐问题
  • 革新快速搜索
  • 更改邀请页面布局以匹配其他用户页面
  • 全局通知不再接受 HTML
  • 取消订阅电子邮件区域设置首字母大写
  • 在下拉菜单中使用一致的类别徽章字体大小
  • 修复禁用标签时搜索中的标签
  • 查看标签时私密消息收件箱被错误展开
  • 对于没有消息的群组不显示群组消息链接
  • 仅在下拉菜单需要时显示滚动条
  • 调整全页搜索的移动端间距
  • 确保粘性元素不溢出头部
  • 更好地放置批量选择操作按钮
  • 将快速编辑移到分享之前
  • 调整移动端引用按钮位置
  • 在移动端添加第二个搜索按钮
  • 分享按钮边距一致性
  • 修复个人资料按钮间距
  • 改进移动端作曲家按钮栏
  • 防止邀请表单字段调整大小
  • 修复日期输入图标显示问题
  • 快速编辑微调
  • 改进快速编辑后备处理
  • 可选地在话题时间线中显示“总结”按钮
  • 修复移动端选项卡组编辑布局问题
  • 在 /top 页面末尾使用标准字体大小显示按钮
  • 修复管理员配色方案的移动端样式
  • 修复移动端管理员控件的对齐
  • 修复 iOS 中的日期输入显示
  • 下拉菜单的微小布局调整
  • 规范化输入、按钮、下拉菜单的大小
  • 调整按钮间距
  • 限制 select-kit 标签选择器宽度
  • 移除 topic-statuses 上的 :empty 并清理

性能

  • InlineUploads 允许外部来源时减少工作量
  • 在从话题查询中排除标签时使用子查询
  • 避免为匿名用户运行忽略用户数据库查询
  • 从消息路由中还原所有收件箱
  • 改进加载类别话题时的数据库查询性能
  • 修复 SiteSerialier 中的 N+1 查询
  • 改进所有收件箱私密消息的查询性能
  • 更新书签时避免不必要地运行查询
  • 查看自己的用户时避免额外的数据库查询
  • 改进获取私密消息话题跟踪状态未读时的查询性能
20 个赞