diff options
Diffstat (limited to 'app/services/protected_refs/access_level_params.rb')
-rw-r--r-- | app/services/protected_refs/access_level_params.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/app/services/protected_refs/access_level_params.rb b/app/services/protected_refs/access_level_params.rb new file mode 100644 index 00000000000..59fc17868d1 --- /dev/null +++ b/app/services/protected_refs/access_level_params.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +module ProtectedRefs + class AccessLevelParams + attr_reader :type, :params + + def initialize(type, params) + @type = type + @params = params_with_default(params) + end + + def access_levels + ce_style_access_level + end + + private + + def params_with_default(params) + params[:"#{type}_access_level"] ||= Gitlab::Access::MAINTAINER if use_default_access_level?(params) + params + end + + def use_default_access_level?(params) + true + end + + def ce_style_access_level + access_level = params[:"#{type}_access_level"] + + return [] unless access_level + + [{ access_level: access_level }] + end + end +end + +ProtectedRefs::AccessLevelParams.prepend_mod_with('ProtectedRefs::AccessLevelParams') |