Discourse 2.4.0.beta7 发布说明

2.4.0.beta7 中的新功能

管理员 API 密钥改进

Discourse API 是与 Discourse 站点交互的强大工具。在最新的测试版中,我们对 API 密钥系统进行了多项改进,提升了安全性和功能性。

  • 用户现在可以创建多个 API 密钥,因此如果某个密钥泄露,可以单独撤销该密钥。
  • API 密钥现在可以包含描述,方便您跟踪每个密钥的用途。
  • 密钥可以被撤销,从而防止其被使用,而无需完全删除它们。
  • 未使用的 API 密钥将在 6 个月未使用后自动删除。此行为可通过站点设置 revoke_api_keys_days 进行配置。

工作人员欢迎消息

与新用户和达到 TL1 级别的用户一样,工作人员在获得版主或管理员权限时也会收到欢迎消息。该消息欢迎用户加入工作人员团队,告知他们如何访问管理界面,并链接到 https://meta.discourse.org/t/discourse-moderation-guide/63116,这是一个为新工作人员提供的优秀资源。

默认标签通知状态的新站点设置

管理员长期以来可以控制新用户在加入论坛时关注、跟踪和静音哪些分类。用户也可以控制自己关注/跟踪/静音哪些标签,但此前无法在注册前由站点进行配置。现在,管理员可以通过新的站点设置决定用户在注册前跟踪哪些标签:

  • default_tags_watching
  • default_tags_tracking
  • default_tags_muted
  • default_tags_watching_first_post

更改默认站点设置时更新所有用户的偏好

以前,当修改 default_ 类型的站点设置时,仅适用于新用户,现有用户不受影响。现在,管理员可以选择将此更改历史性地应用到所有用户,或仅应用于新用户。

新的分类标签设置:要求新主题必须包含来自标签组的标签

对于使用标签组的站点,工作人员现在可以要求某个分类中的所有新主题在创建前必须至少包含来自某个标签组的 x 个标签。这是保持主题组织有序的好方法。

举例来说,如果您有一个关于汽车改装的分类,用户在此分享他们所做的各种精彩改装。您可以创建一个名为“车辆区域”的标签组,其中包含轮胎、轮毂、外观、内饰和灯光等标签。将此标签组添加到新设置后,用户将被要求为话题添加至少一个这些标签,帮助其他用户一眼看出该改装的具体内容。

用户可选择的主要群组

我们新增了一个站点设置 user selected primary groups,启用后允许用户选择希望作为其主要群组的群组。这对于那些通过主要群组提供 头像装饰 的站点特别有用,用户可以根据需要切换显示的装饰。启用该设置后,属于群组的用户将在“账户”标签页中看到新的主要群组偏好下拉菜单。

image

可配置的邮件样式

站点现在可以使用自定义 HTML 和 CSS 来定制通知邮件的外观和风格。新的邮件自定义选项可在 /admin/customize/email_style 找到。

插入超链接时搜索主题

在话题编辑器中插入链接时,您现在可以直接从超链接弹窗中搜索现有话题。

37 个赞

Even more!

But wait, there’s more! We do our best to highlight new features and changes for you, but there’s always too many changes to detail. For a full list of new features, bug fixes, UX improvements, and more, be sure to review the Additional Features and Fixes listed below.

Security Updates

This beta includes 1 security fix for issues reported by our community and HackerOne.

  • Check permissions when autocompleting mentions

Plugin improvements

User Notes

  • Bug fix

Voting

  • Bug fixes

Solved

  • Bug fixes

Patreon

  • Add optional donation prompt
  • Bug fixes

OAuth2 Basic

  • Copy improvement

Data Explorer

  • Shareable links to reports
  • Bug fixes

Assign

  • New category setting to add “unassigned” navigation menu
  • Order assign list by reverse bump date (previous random)
  • Bug fixes

Akismet

  • Bug fixes
  • Code refactor

Docker Manager

  • Dependency updates to resolve reported vulnerabilities
  • Always show link to /admin/upgrade from dashboard

Translator

  • Bug fix

RSS Polling

  • Rename from wellfed
  • Bug fixes

Onebox

  • Bug fixes

No Bump

  • Bug fix

Restricted replies

  • Initial release

WP Discourse

  • Use unique transient key for DiscourseUtilities::get_discourse_categories. This function returns more data than is stored in the transient that is set for internal use by the plugin.
  • Fix incorrectly formatted header keys

Zendesk

  • Bug fix

Styleguide

  • Add support for new date-time-inputs

Policy

  • Keep history of policy acceptance
  • Bug fix

Additional Features and Fixes

Click to expand

New Features

  • Load translation overrides without JS eval
  • Add an “init” method for extra nav items
  • Allow publishing docker dev either locally or net wide
  • Fallback to image alt before filename if there’s no title in lightboxes
  • Create New Topic button on embed with params
  • Stop updating last_posted_at on users for messages and whispers
  • Allow sending bulk invites to staged users
  • Remove attachments and truncate raw field for incoming emails
  • Add SES spam header to recognised spam headers
  • Add remembering topic list for group pms
  • Wiki editors are allowed edit tags for wiki topics.
  • Include image url in topic serializer
  • Remember scroll position in private message lists
  • Remember position in private message lists
  • Experimental hidden setting for draft backups
  • Allow staff to use topic_url for customizing email template
  • Improve honeypot and challenge logic
  • Use the ‘ugc’ rel attribute alongside ‘nofollow’
  • Add short site description on login page title

Bug Fixes

  • Skip invalid URLs when checking for audio/video in search blurbs
  • Add <img> alt attribute for Summary emails
  • Tweak restorer spec to make it stableish
  • Display tags topic list correctly when none is selected for subcategories
  • Build with prettier for imports
  • Allow theme translations to be accessed in initializers
  • FilterQueryParams mutates state that is essentially global
  • Improve regex used for image sizing controls
  • On mobile setting active on navItem would not work
  • Skip composer blur event when switching apps in iOS
  • Do not update created_at date when resending invites
  • Do not consider mobile app traffic as crawler visits
  • No need to pass cache option in onebox
  • Dropbox videos were not loading
  • Ensure menu not too tall on desktop only
  • Prevents whitelisted_generic_onebox_spec to fail with zeitwerk
  • Update action should be in setting-component mixin
  • Ensures menu panel is not too tall for screen
  • TopicQuery doesn’t react well to subcategories without definitions
  • Do not add personal message link in user menu if they are disabled
  • Linting
  • Move makeArray to discourse-common
  • Missing run import
  • Do not load plugin CSS/JS assets when disabled
  • Unread topics not clearing when whisper is last post
  • Hide muted subcategories for mobile
  • Enter key on forms submits rather than refresh
  • Make notification consent banner usable via keyboard and screenreader
  • Move attachment_css_class constant out of upload-short-url for discourse-markdown-it
  • Cache Discourse.system_user separately for each multisite tenant
  • Under some conditions draft would say it was saving when not
  • Tags can be filtered on categoryId without a q param
  • Default user preferenced categories are not updating in admin site setting UI.
  • Prettier on importing mixin
  • Ensure there’s an excerpt before showing the bio
  • Correct slug validation
  • Account for empty uploads directory upon backup restore
  • Generate category url correctly when slugs are empty
  • Require q param in /tags/filter/search route
  • Don’t use ember imports in pretty text
  • Use modules for Ember.run.debounce hack in testing
  • Yet more linting fixes
  • Upserting custom fields using keywords converts the array key to a string
  • More flaky jobs_base_spec.rb
  • Flaky jobs_base_spec.rb
  • Place image scale buttons unconditionally
  • Close modals on ESC key and clicking outside
  • Correct error when sending PM to email address
  • Prefer Category.find_by_slug over Category.find_by(slug: …)
  • TopicQuery category lookup by slug
  • Respond to user search correctly when category_id is blank
  • Theme component setting was not getting updated in the UI
  • Reload plugin translations in development
  • When running the wizard and using a custom theme, fallback to the color_scheme name if the base_scheme_id is nil
  • Allow storage of non unique rows in oauth2_user_infos
  • Update rack-mini-profiler
  • Hide muted subcategories
  • Handle nil case for avatar, just in case
  • Allow avatar downloads to follow redirects
  • Broken certificates
  • Failing build with prettier
  • Show poll voters in Oneboxed posts.
  • Check for presence of liked post before creating notification
  • Rubocop rule on restorer spec
  • Restore for non-multisite is not raising an error on reconnect step
  • Backwards compatibility for uncompiled email style css
  • Do not load group members when user can’t see it.
  • Should not disable topic inputs while creating new topic.
  • Wizard tests were broken with new loader
  • Sortable controller var conflict
  • Fixed testsuite
  • Correct path to ImportExport module
  • Reconnect in restore process connects to correct DB
  • Notifications are missing under certain conditions
  • Respect tl3 links no follow setting
  • Return blank avatar when downloading an avatar is not possible due to file size
  • Exclude image_url from web_hook_topic_view_serializer
  • Prevent null-byte searches causing 500 error
  • Follow redirect returns url if response code is 200
  • Do not resize xkcd image
  • Include user id in notification webhook
  • Load user model when some attributes are missing.
  • Make category updates slug validation idempotent
  • Reload only notifications when refreshing notification count
  • Zeitwerk-related fixes for jobs.
  • Rate limit and hijack certificate generation.
  • Add common HTML5 media extensions to onebox audio and video tags
  • Correct mention autocomplete in new topics in unsecured categories
  • ‘only_hidden_tags_changed?’ method returned ‘true’ even when tags are not changed.
  • Id is always true since it’s been to_i’d
  • D-button should default type to button
  • Fixes plugin generator with zeitwerk
  • Various fixes to draft system
  • Update Redis gem to version 4.1.3
  • Polyfills forEach support on NodeList for IE11
  • Handle encoded slugs for subcategories
  • Do not truncate encoded slugs
  • Display site text overrides for non ‘_MF’ keys
  • Transform pluralized keys to .other, to check valid interpolation
  • Update Redis gem to version 4.1.3
  • Get rid of redis freedom patch
  • More encoded slug fixes
  • Do not encode the URL twice
  • More places do deal with encoded slugs
  • Handle the nil slug on /categories
  • Account for nil when looking up subcategories
  • Correct topic timeline position calculation
  • Tag cannot be used if it belongs to two tag groups with parent tag
  • Use the quote generator in the example text
  • Do not send notification to empty push_url
  • Do not make notification API call if push_url is blank
  • Add migrations to fix index on category slugs
  • Prevents trash button to get focus when submiting input on profile
  • Respect private_email setting for user invited notification email
  • Include topic link when inviting existing users to a topic/PM
  • Correct line count link in GitHub commit onebox
  • Public_file_server.enabled is false in test
  • Add unique index to prevent duplicate slugs for categories
  • Category.find_by_slug
  • Do not unpin reply box in iOS when selecting Emoji
  • Remove hiredis gem which is no longer needed
  • Subcategory permissions validation
  • Validation of category tree depth
  • Move notification level only when user posted
  • Zeitwerk-related fixes for jobs.
  • Ensure that scheduled jobs are loaded.
  • ‘local_cdn_url’ method should work for local relative urls too.
  • Allow themes to upload and serve js files
  • Use upload’s cdn url in composer preview if available.
  • Allow change password with TOTP
  • Allows scrolling of search menu panel when showing more results
  • Remove another broken test
  • This emoji test was broken too
  • Flaky tests
  • Accurate sub_total calculation for reviewable_scores
  • Properly encoded slugs when configured to
  • Ensure we remove tempfiles from disk when creating an upload
  • Show a correct diff when editing consecutive paragraphs
  • Prevent from creation of duplicated TopicAllowedUsers
  • Minor Github onebox layout issues
  • Mobile adjustments for reviewable list

UX Changes

  • Tag input suggests required tags if none have been selected
  • Show user email address on “grant admin access” email and UI
  • Widen tag group name input field and add placeholder text
  • Convert alert & modal close to buttons for improved accessibility
  • Applies correct background to <select> on dark themes
  • Improve quoting on iOS
  • Fixes regression with iOS composer
  • Update disabled dropdowns style w/ color variables
  • Standardize tag display in search menu results
  • Dashboard links to git commits list instead of git comparison
  • Make group membership UI clearer
  • Emphasizes on local-dates being UTC in excerpts
  • Ensure GitHub onebox info does not wrap unnecessarily
  • Improve new GitHub onebox rendering in emails
  • Add newline after closing poll tag for poll builder
  • Wrap digest email footer in a table for better alignment options
  • Include metadata in composer link modal search results
  • Add CSS classes to digest email template to allow for easier styling

Performance

  • Add a filtered index for banners
  • Add index to notifications to speed up moving of posts
  • Stop destroying drafts on client when posting replies
  • Run expensive clean up uploads less frequently
  • Cache new users counts in summary emails
  • Add index on group to category_groups
  • Add unique index oauth2_user_infos(user_id, provider)
  • Faster moving of read state
26 个赞