diff options
-rw-r--r-- | app/helpers/visibility_level_helper.rb | 10 | ||||
-rw-r--r-- | app/models/group.rb | 6 | ||||
-rw-r--r-- | app/models/project.rb | 6 | ||||
-rw-r--r-- | lib/gitlab/visibility_level.rb | 18 |
4 files changed, 10 insertions, 30 deletions
diff --git a/app/helpers/visibility_level_helper.rb b/app/helpers/visibility_level_helper.rb index caadc12019c..a13127a6365 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 0e6d88f6a91..3778b832a47 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 088fe5e1fed..d5324ceac31 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 ef5c4d9a3b2..c60bd91ea6e 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 |