Conversation
There was a problem hiding this comment.
Pull request overview
This PR moves the trash feature out of beta and adds the ability to differentiate between trash (soft delete) and permanent delete operations in access control functions.
Changes:
- Adds
dataparameter to delete access control checks during trash operations - Implements differentiated trash/delete permissions in the Admin Panel UI
- Adds comprehensive test coverage for the new permission differentiation
Reviewed changes
Copilot reviewed 22 out of 22 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| test/trash/payload-types.ts | Added TypeScript types for new DifferentiatedTrashCollection |
| test/trash/int.spec.ts | Added integration tests for differentiated trash/delete permissions |
| test/trash/config.ts | Added new collection to test configuration |
| test/trash/collections/DifferentiatedTrashCollection/index.ts | Created test collection demonstrating trash/delete differentiation |
| test/access-control/shared.ts | Added slug constants for trash access control tests |
| test/access-control/payload-types.ts | Added TypeScript types for trash access control collections |
| test/access-control/getConfig.ts | Configured trash access control collections and seeded test data |
| test/access-control/e2e.spec.ts | Added E2E tests for trash access control UI behavior |
| test/access-control/collections/RestrictedTrash/index.ts | Created collection with admin-only delete access |
| test/access-control/collections/DifferentiatedTrash/index.ts | Created collection demonstrating differentiated permissions |
| packages/ui/src/providers/DocumentInfo/types.ts | Added hasDeletePermission and hasTrashPermission properties |
| packages/ui/src/elements/DocumentControls/index.tsx | Updated to use document-level trash/delete permissions |
| packages/ui/src/elements/DeleteMany/index.tsx | Added permission-based logic for bulk delete operations |
| packages/ui/src/elements/DeleteDocument/index.tsx | Added permission-based logic for single document delete |
| packages/payload/src/collections/operations/updateByID.ts | Passes data to delete access control during trash operations |
| packages/payload/src/collections/operations/update.ts | Passes data to delete access control during bulk trash operations |
| packages/next/src/views/Document/renderDocumentSlots.tsx | Added comment noting permissions not needed in this context |
| packages/next/src/views/Document/index.tsx | Passes trash/delete permissions to DocumentInfo provider |
| packages/next/src/views/Document/getDocumentPermissions.tsx | Computes separate permissions for trash vs permanent delete |
| packages/next/src/views/Account/index.tsx | Passes trash/delete permissions to DocumentInfo provider |
| docs/trash/overview.mdx | Removed beta warning and documented access control patterns |
| docs/access-control/collections.mdx | Added documentation for data parameter in delete access control |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
📦 esbuild Bundle Analysis for payloadThis analysis was generated by esbuild-bundle-analyzer. 🤖
Largest pathsThese visualization shows top 20 largest paths in the bundle.Meta file: packages/next/meta_index.json, Out file: esbuild/index.js
Meta file: packages/payload/meta_index.json, Out file: esbuild/index.js
Meta file: packages/payload/meta_shared.json, Out file: esbuild/exports/shared.js
Meta file: packages/richtext-lexical/meta_client.json, Out file: esbuild/exports/client_optimized/index.js
Meta file: packages/ui/meta_client.json, Out file: esbuild/exports/client_optimized/index.js
Meta file: packages/ui/meta_shared.json, Out file: esbuild/exports/shared_optimized/index.js
DetailsNext to the size is how much the size has increased or decreased compared with the base branch of this PR.
|
DanRibbens
left a comment
There was a problem hiding this comment.
I reviewed all but the test directory.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 28 out of 28 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…nly-to-trash Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…access-control-to-limit-deletes-only-to-trash
…access-control-to-limit-deletes-only-to-trash
…access-control-to-limit-deletes-only-to-trash
…access-control-to-limit-deletes-only-to-trash
1fdc175
…access-control-to-limit-deletes-only-to-trash
…access-control-to-limit-deletes-only-to-trash
|
🚀 This is included in version v3.78.0 |
Access control can be limited to only trash
You can now limit users to only trash without being able to permanently delete: