John Swanson
John Swanson
First, I added a new function to `models.data-permissions`, `full-database-permission-for-user`, that is equivalent to `full-schema-permission-for-user` but for an entire database rather than a table. For each group, it gets the *least*...
When something is in the trash, we need to check permissions on the `trashed_from_collection_id` rather than the `collection_id`. We were doing this. However, we want the actual collection data on...
Serialization for the Trash collection needs to be carefully considered, and I hadn't researched serialization well enough before now to know exactly what it entailed. My understanding is still a...
Something I hadn't thought about until implementing this was that in order to migrate things TO the trash, we need the trash to exist - because foreign keys require that...
Adding the following to the Changelog: --- # Breaking changes to the API interface ## Metabase 0.50.0 - `PUT /api/dashboard/:id`, `PUT /api/card/:id`, and `PUT /api/collection/:id` When setting `archived` to `true`,...
This fetches the Trash in exactly the same way as if we'd fetched it with `/api/collection/:id` with the Trash ID. I hadn't realized that the frontend was doing this with...
There are at least two spots where we can't just rely on the after-select hook, and select the collection name directly from the database: the Search and Collection API. In...