diff --git a/app/helpers/visibility_level_helper.rb b/app/helpers/visibility_level_helper.rb index caadc12019c287fa429c1f4047e0d8f59e8ec6df..a13127a636543db15fb13390b2914d472c4950ee 100644 --- a/app/helpers/visibility_level_helper.rb +++ b/app/helpers/visibility_level_helper.rb @@ -82,11 +82,11 @@ module VisibilityLevelHelper reasons = [] unless project.visibility_level_allowed_as_fork?(level) - reasons << project.visibility_error_for(:fork, level: level_name) + reasons << "the fork source project has lower visibility" end unless project.visibility_level_allowed_by_group?(level) - reasons << project.visibility_error_for(:group, level: level_name, group_level: project.group.visibility) + reasons << "the visibility of #{project.group.name} is #{project.group.visibility}" end reasons = reasons.any? ? ' because ' + reasons.to_sentence : '' @@ -98,15 +98,15 @@ module VisibilityLevelHelper reasons = [] unless group.visibility_level_allowed_by_projects?(level) - reasons << group.visibility_error_for(:projects, level: level_name) + reasons << "it contains projects with higher visibility" end unless group.visibility_level_allowed_by_sub_groups?(level) - reasons << group.visibility_error_for(:sub_groups, level: level_name) + reasons << "it contains sub-groups with higher visibility" end unless group.visibility_level_allowed_by_parent?(level) - reasons << group.visibility_error_for(:parent, level: level_name, parent_level: group.parent.visibility) + reasons << "the visibility of its parent group is #{group.parent.visibility}" end reasons = reasons.any? ? ' because ' + reasons.to_sentence : '' diff --git a/app/models/group.rb b/app/models/group.rb index 0e6d88f6a91ca153f2188409986763cddbe45623..3778b832a470c1042e2ce2ed66e0345065197ad2 100644 --- a/app/models/group.rb +++ b/app/models/group.rb @@ -297,18 +297,18 @@ class Group < Namespace def visibility_level_allowed_by_parent return if visibility_level_allowed_by_parent? - errors.add(:visibility_level, visibility_error_for(:parent, level: visibility, parent_level: parent.visibility)) + errors.add(:visibility_level, "#{visibility} is not allowed since the parent group has a #{parent.visibility} visibility.") end def visibility_level_allowed_by_projects return if visibility_level_allowed_by_projects? - errors.add(:visibility_level, visibility_error_for(:projects, level: visibility)) + errors.add(:visibility_level, "#{visibility} is not allowed since this group contains projects with higher visibility.") end def visibility_level_allowed_by_sub_groups return if visibility_level_allowed_by_sub_groups? - errors.add(:visibility_level, visibility_error_for(:sub_groups, level: visibility)) + errors.add(:visibility_level, "#{visibility} is not allowed since there are sub-groups with higher visibility.") end end diff --git a/app/models/project.rb b/app/models/project.rb index 088fe5e1fed88f6170b7f42aeb8906491cbb53a4..d5324ceac31245bb909d594d5321f6921869a5db 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -671,16 +671,14 @@ class Project < ActiveRecord::Base level_name = Gitlab::VisibilityLevel.level_name(self.visibility_level).downcase group_level_name = Gitlab::VisibilityLevel.level_name(self.group.visibility_level).downcase - - self.errors.add(:visibility_level, visibility_error_for(:group, level: level_name, group_level: group_level_name)) + self.errors.add(:visibility_level, "#{level_name} is not allowed in a #{group_level_name} group.") end def visibility_level_allowed_as_fork return if visibility_level_allowed_as_fork? level_name = Gitlab::VisibilityLevel.level_name(self.visibility_level).downcase - - self.errors.add(:visibility_level, visibility_error_for(:fork, level: level_name)) + self.errors.add(:visibility_level, "#{level_name} is not allowed since the fork source project has lower visibility.") end def check_wiki_path_conflict diff --git a/lib/gitlab/visibility_level.rb b/lib/gitlab/visibility_level.rb index ef5c4d9a3b20bf2d9b37867931d4ac393d20091b..c60bd91ea6e2ba276ed804fdf862b2eab35c6438 100644 --- a/lib/gitlab/visibility_level.rb +++ b/lib/gitlab/visibility_level.rb @@ -130,23 +130,5 @@ module Gitlab def visibility=(level) self[visibility_level_field] = Gitlab::VisibilityLevel.level_value(level) end - - def visibility_errors_template - @visibility_errors ||= { - 'Project' => { - group: "%{level} is not allowed in a %{group_level} group", - fork: "%{level} is not allowed since the fork source project has lower visibility" - }, - 'Group' => { - parent: "%{level} is not allowed since the parent group has a %{parent_level} visibility", - projects: "%{level} is not allowed since this group contains projects with higher visibility", - sub_groups: "%{level} is not allowed since there are sub-groups with higher visibility" - } - } - end - - def visibility_error_for(section, variables) - visibility_errors_template.dig(model_name.to_s, section) % variables - end end end