diff options
Diffstat (limited to 'app/services/labels/update_service.rb')
-rw-r--r-- | app/services/labels/update_service.rb | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/app/services/labels/update_service.rb b/app/services/labels/update_service.rb index be33947d0eb..4ac54959e84 100644 --- a/app/services/labels/update_service.rb +++ b/app/services/labels/update_service.rb @@ -10,9 +10,19 @@ module Labels def execute(label) params[:name] = params.delete(:new_name) if params.key?(:new_name) params[:color] = convert_color_name_to_hex if params[:color].present? + params.delete(:lock_on_merge) unless allow_lock_on_merge?(label) label.update(params) label end + + private + + def allow_lock_on_merge?(label) + return if label.template? + return unless label.respond_to?(:parent_container) + + Feature.enabled?(:enforce_locked_labels_on_merge, label.parent_container, type: :ops) + end end end |