blob: 13bf25ff662c2ef86f6dee5ec7e759eaaf40502b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# frozen_string_literal: true
module BulkImports
module VisibilityLevel
private
# Calculates visbility level based on the source and the destination namespace visbility levels
# If there are visibility_level restrictions on the destination instance,
# the highest allowed level less than the calculated level is returned
def visibility_level(entity, namespace, visibility_string)
requested = requested_visibility_level(entity, visibility_string)
namespace_level = namespace&.visibility_level
lowest_level = [requested, namespace_level].compact.min
closet_allowed_level(lowest_level)
end
def requested_visibility_level(entity, visibility_string)
Gitlab::VisibilityLevel.string_options[visibility_string] || entity.default_visibility_level
end
def closet_allowed_level(level)
Gitlab::VisibilityLevel.closest_allowed_level(level)
end
end
end
|