Precalculate authorized projects in database

What does this MR do?

It caches user's authorized projects in database instead of using multiple unions, which should simplify and speed-up things since this operation (getting authorized projects) is used a lot.

Are there points in the code the reviewer needs to double check?

Did we miss a scenario where we need to refresh the list of projects?

Does this MR meet the acceptance criteria?

What are the relevant issue numbers?

#23150 (closed)

Merge request reports