Optimize checking if a user can read multiple issues
What does this MR do?
This optimises various parts of the code so it can more efficiently check if a user can read a list of issues.
Are there points in the code the reviewer needs to double check?
Yes, in particular Ability.issues_readable_by_user
should be checked to make sure it correctly allows/restricts access to issues.
Why was this MR needed?
Currently the general approach to checking if one can read an issue is to iterate over the issues to check and call can?(user, :read_issue, issue)
for every issue. This is not efficient as the same work has to be done for every issue.
What are the relevant issue numbers?
Does this MR meet the acceptance criteria?
-
CHANGELOG entry added -
Documentation created/updated -
API support added - Tests
-
Added for this feature/bug -
All builds are passing
-
-
Conform by the style guides -
Branch has no merge conflicts with master
(if you do - rebase it please) -
Squashed related commits together