Link or not link depending on permissions
This commit is contained in:
parent
5404dbb49d
commit
f03b90c6a3
2 changed files with 29 additions and 11 deletions
|
@ -99,15 +99,23 @@ module GroupsHelper
|
|||
end
|
||||
end
|
||||
|
||||
def ancestor_group_link(group)
|
||||
def ancestor_group(group)
|
||||
ancestor = oldest_consecutively_locked_ancestor(group)
|
||||
link_to ancestor.name, group_path(ancestor)
|
||||
if can?(current_user, :read_group, ancestor)
|
||||
link_to ancestor.name, group_path(ancestor)
|
||||
else
|
||||
ancestor.name
|
||||
end
|
||||
end
|
||||
|
||||
def remove_the_share_lock_from_ancestor_link(group)
|
||||
def remove_the_share_lock_from_ancestor(group)
|
||||
ancestor = oldest_consecutively_locked_ancestor(group)
|
||||
link_text = s_("GroupSettings|remove the share lock from %{ancestor_group_name}") % { ancestor_group_name: ancestor.name }
|
||||
link_to link_text, edit_group_path(ancestor)
|
||||
text = s_("GroupSettings|remove the share lock from %{ancestor_group_name}") % { ancestor_group_name: ancestor.name }
|
||||
if can?(current_user, :admin_group, ancestor)
|
||||
link_to text, edit_group_path(ancestor)
|
||||
else
|
||||
text
|
||||
end
|
||||
end
|
||||
|
||||
def oldest_consecutively_locked_ancestor(group)
|
||||
|
@ -121,14 +129,14 @@ module GroupsHelper
|
|||
end
|
||||
|
||||
def ancestor_locked_but_you_can_override(group)
|
||||
s_("GroupSettings|This setting is applied on %{ancestor_group}. You can override the setting or %{remove_ancestor_share_lock}.") % { ancestor_group: ancestor_group_link(group), remove_ancestor_share_lock: remove_the_share_lock_from_ancestor_link(group) }
|
||||
s_("GroupSettings|This setting is applied on %{ancestor_group}. You can override the setting or %{remove_ancestor_share_lock}.") % { ancestor_group: ancestor_group(group), remove_ancestor_share_lock: remove_the_share_lock_from_ancestor(group) }
|
||||
end
|
||||
|
||||
def ancestor_locked_so_ask_the_owner(group)
|
||||
s_("GroupSettings|This setting is applied on %{ancestor_group}. To share projects in this group with another group, ask the owner to override the setting or remove the share lock from %{ancestor_group}.") % { ancestor_group: ancestor_group_link(group) }
|
||||
s_("GroupSettings|This setting is applied on %{ancestor_group}. To share projects in this group with another group, ask the owner to override the setting or %{remove_ancestor_share_lock}.") % { ancestor_group: ancestor_group(group), remove_ancestor_share_lock: remove_the_share_lock_from_ancestor(group) }
|
||||
end
|
||||
|
||||
def ancestor_locked_and_has_been_overridden(group)
|
||||
s_("GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup.") % { ancestor_group: ancestor_group_link(group) }
|
||||
s_("GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup.") % { ancestor_group: ancestor_group(group) }
|
||||
end
|
||||
end
|
||||
|
|
|
@ -107,9 +107,9 @@ describe GroupsHelper do
|
|||
let(:possible_help_texts) do
|
||||
{
|
||||
default_help: "This setting will be applied to all subgroups unless overridden by a group owner",
|
||||
ancestor_locked_but_you_can_override: /This setting is applied on <a .+>.+<\/a>\. You can override the setting or <a .+>remove the share lock from .+<\/a>/,
|
||||
ancestor_locked_so_ask_the_owner: /This setting is applied on <a .+>.+<\/a>\. To share projects in this group with another group, ask the owner to override the setting or remove the share lock from <a .+>.+<\/a>/,
|
||||
ancestor_locked_and_has_been_overridden: /This setting is applied on <a .+>.+<\/a> and has been overridden on this subgroup/
|
||||
ancestor_locked_but_you_can_override: /This setting is applied on <a .+>.+<\/a>\. You can override the setting or .+/,
|
||||
ancestor_locked_so_ask_the_owner: /This setting is applied on .+\. To share projects in this group with another group, ask the owner to override the setting or remove the share lock from .+/,
|
||||
ancestor_locked_and_has_been_overridden: /This setting is applied on .+ and has been overridden on this subgroup/
|
||||
}
|
||||
end
|
||||
let(:possible_linked_ancestors) do
|
||||
|
@ -170,6 +170,16 @@ describe GroupsHelper do
|
|||
allow(helper).to receive(:can?)
|
||||
.with(users[current_user], :change_share_with_group_lock, subgroup)
|
||||
.and_return(Ability.allowed?(users[current_user], :change_share_with_group_lock, subgroup))
|
||||
|
||||
ancestor = possible_linked_ancestors[linked_ancestor]
|
||||
if ancestor
|
||||
allow(helper).to receive(:can?)
|
||||
.with(users[current_user], :read_group, ancestor)
|
||||
.and_return(Ability.allowed?(users[current_user], :read_group, ancestor))
|
||||
allow(helper).to receive(:can?)
|
||||
.with(users[current_user], :admin_group, ancestor)
|
||||
.and_return(Ability.allowed?(users[current_user], :admin_group, ancestor))
|
||||
end
|
||||
end
|
||||
|
||||
it 'has the correct help text with correct ancestor links' do
|
||||
|
|
Loading…
Reference in a new issue