73322a0e55
Enables frozen string for the following: * app/controllers/*.rb * app/controllers/admin/**/*.rb * app/controllers/boards/**/*.rb * app/controllers/ci/**/*.rb * app/controllers/concerns/**/*.rb Partially addresses #47424.
23 lines
779 B
Ruby
23 lines
779 B
Ruby
# frozen_string_literal: true
|
|
|
|
module ChecksCollaboration
|
|
def can_collaborate_with_project?(project, ref: nil)
|
|
return true if can?(current_user, :push_code, project)
|
|
|
|
can_create_merge_request =
|
|
can?(current_user, :create_merge_request_in, project) &&
|
|
current_user.already_forked?(project)
|
|
|
|
can_create_merge_request ||
|
|
user_access(project).can_push_to_branch?(ref)
|
|
end
|
|
|
|
# rubocop:disable Gitlab/ModuleWithInstanceVariables
|
|
# enabling this so we can easily cache the user access value as it might be
|
|
# used across multiple calls in the view
|
|
def user_access(project)
|
|
@user_access ||= {}
|
|
@user_access[project] ||= Gitlab::UserAccess.new(current_user, project: project)
|
|
end
|
|
# rubocop:enable Gitlab/ModuleWithInstanceVariables
|
|
end
|