Read about our upcoming Code of Conduct on this issue

Commit 6cad21ef authored by Mike Greiling's avatar Mike Greiling
Browse files

revert changes to visibility level helpers from 0430a61fd270

parent d5ec179b0119
......@@ -82,11 +82,11 @@ def disallowed_project_visibility_level_description(level, project)
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 @@ def disallowed_group_visibility_level_description(level, group)
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 : ''
......
......@@ -297,18 +297,18 @@ def update_two_factor_requirement
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
......@@ -671,16 +671,14 @@ def visibility_level_allowed_by_group
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
......
......@@ -130,23 +130,5 @@ def visibility
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
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment