From 68de5dcba28d83089fd563434ba9d1ba1d882b76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20D=C3=A1vila?= Date: Wed, 30 Aug 2017 18:38:06 -0500 Subject: [PATCH] Fix error reported by Flay --- app/helpers/visibility_level_helper.rb | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/app/helpers/visibility_level_helper.rb b/app/helpers/visibility_level_helper.rb index e21a7b04bb4..4b4f7c6a57a 100644 --- a/app/helpers/visibility_level_helper.rb +++ b/app/helpers/visibility_level_helper.rb @@ -89,11 +89,10 @@ module VisibilityLevelHelper end unless project.visibility_level_allowed_by_group?(level) - group = link_to project.group.name, group_path(project.group) - change_visiblity = link_to 'change the visibility', edit_group_path(project.group) + errors = visibility_level_errors_for_group(project.group, level_name) - reasons << "the visibility of #{group} is #{project.group.visibility}" - instructions << " To make this project #{level_name}, you must first #{change_visiblity} of the parent group." + reasons << errors[:reason] + instructions << errors[:instruction] end reasons = reasons.any? ? ' because ' + reasons.to_sentence : '' @@ -116,11 +115,10 @@ module VisibilityLevelHelper end unless group.visibility_level_allowed_by_parent?(level) - parent_group = link_to group.parent.name, group_path(group.parent) - change_visiblity = link_to 'change the visibility', edit_group_path(group.parent) + errors = visibility_level_errors_for_group(group.parent, level_name) - reasons << "the visibility of #{parent_group} is #{group.parent.visibility}" - instructions << " To make this group #{level_name}, you must first #{change_visiblity} of the parent group." + reasons << errors[:reason] + instructions << errors[:instruction] end reasons = reasons.any? ? ' because ' + reasons.to_sentence : '' @@ -163,4 +161,14 @@ module VisibilityLevelHelper return false unless form_model.respond_to?(:visibility_level_allowed?) !form_model.visibility_level_allowed?(level) end + + private + + def visibility_level_errors_for_group(group, level_name) + group = link_to group.name, group_path(group) + change_visiblity = link_to 'change the visibility', edit_group_path(group) + + { reason: "the visibility of #{group} is #{group.visibility}", + instruction: " To make this group #{level_name}, you must first #{change_visiblity} of the parent group." } + end end