summaryrefslogtreecommitdiff
path: root/app/presenters
diff options
context:
space:
mode:
authorBob Van Landuyt <bob@vanlanduyt.co>2018-04-06 12:47:52 +0200
committerBob Van Landuyt <bob@vanlanduyt.co>2018-04-11 10:51:14 +0200
commitec43e3644436e0ae90f6fb6a64256c38ceb68cc9 (patch)
treeae0ad64114b9708cd04c43a3f398e9983aa62119 /app/presenters
parent267dba0ae56c6236b49907ad77fd572578c7b30e (diff)
downloadgitlab-ce-ec43e3644436e0ae90f6fb6a64256c38ceb68cc9.tar.gz
Prevent new merge requests for archived projects
This prevents creating merge requests targeting archived projects. This could happen when a project was already forked, but then the source was archived.
Diffstat (limited to 'app/presenters')
-rw-r--r--app/presenters/merge_request_presenter.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/app/presenters/merge_request_presenter.rb b/app/presenters/merge_request_presenter.rb
index 9f3f2637183..950d3fde2ea 100644
--- a/app/presenters/merge_request_presenter.rb
+++ b/app/presenters/merge_request_presenter.rb
@@ -196,8 +196,12 @@ class MergeRequestPresenter < Gitlab::View::Presenter::Delegated
end
def user_can_collaborate_with_project?
+ can_create_merge_request =
+ can?(current_user, :create_merge_request_in_project, project) &&
+ current_user.already_forked?(project)
+
can?(current_user, :push_code, project) ||
- (current_user && current_user.already_forked?(project)) ||
+ can_create_merge_request ||
can_push_to_source_branch?
end