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 /app/presenters/merge_request_presenter.rb | |
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
Diffstat (limited to 'app/presenters/merge_request_presenter.rb')
-rw-r--r-- | app/presenters/merge_request_presenter.rb | 11 |
1 files changed, 9 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 |