diff options
author | Stan Hu <stanhu@gmail.com> | 2018-02-07 21:59:42 +0300 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2018-02-07 21:59:42 +0300 |
commit | 714d8e95f6de31ed2686f1b2ca05cb5d1f68c878 (patch) | |
tree | 508a6b286e32482af5c69c7b6791c271b5cca763 | |
parent | 8900b23eab6abd5a6c01278fa0da18d5bed98491 (diff) | |
parent | fd372ce3957dd810c9f774944d68aaed6fd46d98 (diff) |
Merge branch 'osw-remove-duplicate-can-be-reverted-calls' into 'master'
Remove duplicate calls of MergeRequest#can_be_reverted? on MR widget endpoint
See merge request gitlab-org/gitlab-ce!16975
-rw-r--r-- | app/presenters/merge_request_presenter.rb | 11 | ||||
-rw-r--r-- | changelogs/unreleased/osw-remove-duplicate-can-be-reverted-calls.yml | 5 |
2 files changed, 14 insertions, 2 deletions
diff --git a/app/presenters/merge_request_presenter.rb b/app/presenters/merge_request_presenter.rb index c6806b7cc26..08ae49562c7 100644 --- a/app/presenters/merge_request_presenter.rb +++ b/app/presenters/merge_request_presenter.rb @@ -3,6 +3,7 @@ class MergeRequestPresenter < Gitlab::View::Presenter::Delegated include GitlabRoutingHelper include MarkupHelper include TreeHelper + include Gitlab::Utils::StrongMemoize presents :merge_request @@ -43,7 +44,7 @@ class MergeRequestPresenter < Gitlab::View::Presenter::Delegated end def revert_in_fork_path - if user_can_fork_project? && can_be_reverted?(current_user) + if user_can_fork_project? && cached_can_be_reverted? continue_params = { to: merge_request_path(merge_request), notice: "#{edit_in_new_fork_notice} Try to cherry-pick this commit again.", @@ -151,7 +152,7 @@ class MergeRequestPresenter < Gitlab::View::Presenter::Delegated end def can_revert_on_current_merge_request? - user_can_collaborate_with_project? && can_be_reverted?(current_user) + user_can_collaborate_with_project? && cached_can_be_reverted? end def can_cherry_pick_on_current_merge_request? @@ -164,6 +165,12 @@ class MergeRequestPresenter < Gitlab::View::Presenter::Delegated private + def cached_can_be_reverted? + strong_memoize(:can_be_reverted) do + can_be_reverted?(current_user) + end + end + def conflicts @conflicts ||= MergeRequests::Conflicts::ListService.new(merge_request) end diff --git a/changelogs/unreleased/osw-remove-duplicate-can-be-reverted-calls.yml b/changelogs/unreleased/osw-remove-duplicate-can-be-reverted-calls.yml new file mode 100644 index 00000000000..03940555162 --- /dev/null +++ b/changelogs/unreleased/osw-remove-duplicate-can-be-reverted-calls.yml @@ -0,0 +1,5 @@ +--- +title: Remove duplicate calls of MergeRequest#can_be_reverted? +merge_request: +author: +type: performance |