revert changes to visibility level helpers from 6f03ddc

This commit is contained in:
Mike Greiling 2017-08-30 14:37:08 -05:00
parent b9b0b37b36
commit 6cad21efbe
4 changed files with 10 additions and 30 deletions

View file

@ -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 : ''

View file

@ -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

View file

@ -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

View file

@ -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