Change8

v3.60.0

📦 payload-cmsView on GitHub →
8 features🐛 13 fixes🔧 11 symbols

Summary

Version v3.60.0 introduces flexible localization support by allowing multiple fallback locales and enhances the admin UI with a new settings menu. This release also brings significant improvements to the multi-tenant plugin's access control and fixes numerous bugs across database integrations and the Lexical rich text editor.

Migration Steps

  1. If using the multi-tenant plugin, review and potentially update collection access configurations to utilize the new `accessResultOverride` callback if custom access logic across tenants is required.
  2. If using the multi-tenant plugin, update tenant field configurations if you need documents to belong to multiple tenants using `hasMany` relationships.
  3. If using the multi-tenant plugin, review access control on the users collection if custom overrides are needed via `usersAccessResultOverride`.

✨ New Features

  • Accepts multiple locales in `fallbackLocale` for queries, locale configs, Local API, REST API, and GraphQL, allowing sequential fallback checking.
  • Adds `settingsMenu` configuration option to the admin navigation sidebar, providing a dedicated area for custom admin-level utilities.
  • Multi-tenant plugin: Allows collection access control results to be overridden per operation via the new `accessResultOverride` callback.
  • Multi-tenant plugin: Tenant field overrides now support `hasMany` relationships, enabling documents to belong to multiple tenants.
  • Multi-tenant plugin: Introduces `usersAccessResultOverride` to customize access control on the users collection.
  • Lexical Rich Text: UploadFeature now supports `disabledCollections` and `enabledCollections` to filter collections in the upload drawer.
  • Lexical Rich Text: Blocks with `admin.jsx` now support client-side markdown shortcuts.
  • Lexical Rich Text: Includes a pre-made `CodeBlock` component for use in `BlocksFeature`.

🐛 Bug Fixes

  • Fixed `findDistinct` to work correctly by explicit ID paths in relationships and virtual fields.
  • Resolved issue with hasMany / polymorphic relationships when targeting custom number IDs.
  • Hidden fields with `read: false` are now correctly suppressed in list view columns, filters, and groupBy operations.
  • Validated Point Field to enforce longitude between -180 and 180, and latitude between -90 and 90.
  • Ensured URLs in upload sizes are properly encoded.
  • Fixed validation failure when restoring trashed drafts that have empty required fields.
  • SQLite: Added missing `blocksAsJSON` property.
  • MongoDB: Resolved issue where documents were not showing in folders when `useJoinAggregations: false` was set.
  • MongoDB: Improved check for `ObjectId`.
  • GraphQL: Bumped `tsx` version to mitigate an esbuild vulnerability.
  • Next.js integration: Fixed custom views not overriding built-in single-segment routes.
  • Multi-tenant plugin: Fixed object reference mutations in `addFilterOptionsToFields`.
  • Lexical Rich Text: Resolved state key collisions.

🔧 Affected Symbols

fallbackLocaleadmin.components.settingsMenumultiTenantPluginaccessResultOverrideusersAccessResultOverrideUploadFeatureCodeBlockfindDistinctPoint FieldtsxaddFilterOptionsToFields