mirror of
https://github.com/meilisearch/MeiliSearch
synced 2024-12-23 13:10:06 +01:00
d16ea755d8
2982: Adapt task queries to account for special index swap rules r=irevoire a=loiclec # Pull Request ## Related issue Fixes https://github.com/meilisearch/meilisearch/issues/2970 ## What does this PR do? - Replace the `get_tasks` method with a `get_tasks_from_authorized_indexes` which returns the list of tasks matched by the query **from the point of view of the user**. That is, it takes into consideration the list of authorised indexes as well as the special case of `IndexSwap` which should not be returned if an index_uid is specified or if any of its associated indexes are not authorised. - Adapt the code in other places following this change - Add some tests - Also the method `get_task_ids_from_authorized_indexes` now takes a read transaction as argument. This is because we want to make sure that the implementation of `get_tasks_from_authorized_indexes` only uses one read transaction. Otherwise, we could (1) get a list of task ids matching the query, then (2) one of these task ids is deleted by a taskDeletion task, and finally (3) we try to get the `Task`s associated with each returned task ids, and get a `CorruptedTaskQueue` error. Co-authored-by: Loïc Lecrenier <loic.lecrenier@me.com>