Discourse 2.4.0.beta7 リリースノート

2.4.0.beta7 の新機能

管理者 API キーの改善

Discourse API は、Discourse サイトと対話するための強力なツールです。最新のベータ版では、API キーシステムに多数の改善を加え、セキュリティと機能性の両方を向上させました。

  • ユーザーは複数の API キーを作成できるようになりました。そのため、キーが漏洩した場合でも個別に無効化できます。
  • API キーに説明文を追加できるようになり、各キーの用途を管理しやすくなりました。
  • キーを完全に削除することなく、使用不可(無効化)にできるようになりました。
  • 6 ヶ月間使用されていない API キーは自動的に削除されます。この設定は revoke_api_keys_days サイト設定で変更可能です。

スタッフ向けウェルカムメッセージ

新しいユーザーや TL1 に達したユーザーと同様に、モデレーターまたは管理者権限が付与されたスタッフもウェルカムメッセージを受け取るようになりました。このメッセージでは、スタッフチームへの歓迎、管理者インターフェースへのアクセス方法、そして新しいスタッフにとって素晴らしいリソースである Discourse Moderation Guide へのリンクが記載されています。

デフォルトのタグ通知ステータスを設定する新しいサイト設定

管理者は以前から、新規ユーザーがフォーラムに参加した際にどのカテゴリを「ウォッチ」「トラッキング」「ミュート」するかを制御できました。また、ユーザー自身もどのタグをウォッチ/トラッキング/ミュートするかを制御できますが、これはサインアップ前にサイト側で設定することはできませんでした。現在、管理者は以下の新しいサイト設定を通じて、サインアップ前にユーザーがどのタグをトラッキングするかを決定できるようになりました:

  • default_tags_watching
  • default_tags_tracking
  • default_tags_muted
  • default_tags_watching_first_post

デフォルトのサイト設定変更時に全ユーザーのユーザー設定を更新

以前は、default_ で始まるサイト設定を変更しても、その変更は新規ユーザーにのみ適用され、既存ユーザーには影響しませんでした。現在、管理者は変更を過去に遡って全ユーザーに適用するか、新規ユーザーのみに適用するかを選択できるようになりました。

新しいカテゴリタグ設定:タググループからタグを含む新規トピックの作成を必須化

タググループを活用しているサイトでは、スタッフはカテゴリ内のすべての新規トピックが、作成前にタググループから少なくとも x 個のタグを含むことを要求できるようになりました。これはトピックを整理するための優れた方法です。

例を挙げましょう。ユーザーが素晴らしいカスタム事例を共有する「車のカスタム」カテゴリがあるとします。そこで「車両部位」というタググループを作成し、「タイヤ」「ホイール」「外装」「内装」「照明」などのタグを含めます。このタググループを新しい設定に追加すると、ユーザーはトピックを作成する際にこれらのタグの少なくとも 1 つを追加することが必須となり、他のユーザーが一目でカスタムの対象部位を把握できるようになります。

ユーザーが選択可能なプライマリグループ

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