gitlab-org--gitlab-foss/spec/models
Robert Speicher dac2e0c43d Merge branch 'ability-batch-issue-checking' into 'master'
Optimize checking if a user can read multiple issues

## What does this MR do?

This optimizes 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?

* #15607 
* #17463

See merge request !5370
2016-07-29 16:54:37 +00:00
..
ci
concerns Method for returning issues readable by a user 2016-07-29 12:51:18 +02:00
hooks
members
project_services
ability_spec.rb Method for returning issues readable by a user 2016-07-29 12:51:18 +02:00
abuse_report_spec.rb
appearance_spec.rb
application_setting_spec.rb
award_emoji_spec.rb
blob_spec.rb
broadcast_message_spec.rb
build_spec.rb
commit_range_spec.rb
commit_spec.rb
commit_status_spec.rb
deploy_key_spec.rb
deploy_keys_project_spec.rb
deployment_spec.rb
diff_note_spec.rb
email_spec.rb
environment_spec.rb
event_spec.rb
external_issue_spec.rb
forked_project_link_spec.rb
generic_commit_status_spec.rb
global_milestone_spec.rb
group_spec.rb
identity_spec.rb
issue_spec.rb Method for returning issues readable by a user 2016-07-29 12:51:18 +02:00
key_spec.rb
label_link_spec.rb
label_spec.rb
legacy_diff_note_spec.rb
member_spec.rb
merge_request_diff_spec.rb
merge_request_spec.rb
milestone_spec.rb
namespace_spec.rb
note_spec.rb
notification_setting_spec.rb
personal_access_token_spec.rb
project_group_link_spec.rb
project_security_spec.rb
project_snippet_spec.rb
project_spec.rb
project_team_spec.rb
project_wiki_spec.rb
protected_branch_spec.rb
release_spec.rb
repository_spec.rb
service_spec.rb
snippet_spec.rb
spam_log_spec.rb
todo_spec.rb
tree_spec.rb
user_spec.rb
wiki_page_spec.rb