Skip to content
Snippets Groups Projects
Commit f9963fe0 authored by Felipe Artur's avatar Felipe Artur
Browse files

Parse JIRA issue references even if Issue Tracker is disabled

parent 7e88b242
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -171,48 +171,27 @@ module ProjectsHelper
nav_tabs << :merge_requests
end
 
if can?(current_user, :read_pipeline, project)
nav_tabs << :pipelines
end
if can?(current_user, :read_build, project)
nav_tabs << :builds
end
if Gitlab.config.registry.enabled && can?(current_user, :read_container_image, project)
nav_tabs << :container_registry
end
 
if can?(current_user, :read_environment, project)
nav_tabs << :environments
end
if can?(current_user, :admin_project, project)
nav_tabs << :settings
end
if can?(current_user, :read_project_member, project)
nav_tabs << :team
end
if can?(current_user, :read_issue, project)
nav_tabs << :issues
end
if can?(current_user, :read_wiki, project)
nav_tabs << :wiki
end
if can?(current_user, :read_project_snippet, project)
nav_tabs << :snippets
end
if can?(current_user, :read_label, project)
nav_tabs << :labels
end
tab_ability_map = {
environments: :read_environment,
milestones: :read_milestone,
pipelines: :read_pipeline,
snippets: :read_project_snippet,
settings: :admin_project,
builds: :read_build,
labels: :read_label,
issues: :read_issue,
team: :read_project_member,
wiki: :read_wiki
}
 
if can?(current_user, :read_milestone, project)
nav_tabs << :milestones
tab_ability_map.each do |tab, ability|
if can?(current_user, ability, project)
nav_tabs << tab
end
end
 
nav_tabs.flatten
Loading
Loading
Loading
Loading
@@ -171,9 +171,7 @@ class ProjectPolicy < BasePolicy
def disabled_features!
repository_enabled = project.feature_available?(:repository, user)
 
unless project.feature_available?(:issues, user)
cannot!(*named_abilities(:issue))
end
block_issues_abilities
 
unless project.feature_available?(:merge_requests, user) && repository_enabled
cannot!(*named_abilities(:merge_request))
Loading
Loading
@@ -250,6 +248,15 @@ class ProjectPolicy < BasePolicy
)
end
 
def block_issues_abilities
unless project.feature_available?(:issues, user)
cannot! :read_issue if project.default_issues_tracker?
cannot! :create_issue
cannot! :update_issue
cannot! :admin_issue
end
end
def named_abilities(name)
[
:"read_#{name}",
Loading
Loading
---
title: Parse JIRA issue references even if Issue Tracker is disabled
merge_request:
author:
Loading
Loading
@@ -42,6 +42,17 @@ describe 'Edit Project Settings', feature: true do
end
end
 
context "When external issue tracker is enabled" do
it "does not hide issues tab" do
project.project_feature.update(issues_access_level: ProjectFeature::DISABLED)
allow_any_instance_of(Project).to receive(:external_issue_tracker).and_return(JiraService.new)
visit namespace_project_path(project.namespace, project)
expect(page).to have_selector(".shortcuts-issues")
end
end
context "pipelines subtabs" do
it "shows builds when enabled" do
visit namespace_project_pipelines_path(project.namespace, project)
Loading
Loading
Loading
Loading
@@ -12,7 +12,17 @@ describe Banzai::ReferenceParser::ExternalIssueParser, lib: true do
context 'when the link has a data-issue attribute' do
before { link['data-external-issue'] = 123 }
 
it_behaves_like "referenced feature visibility", "issues"
levels = [ProjectFeature::DISABLED, ProjectFeature::PRIVATE, ProjectFeature::ENABLED]
levels.each do |level|
it "creates reference when the feature is #{level}" do
project.project_feature.update(issues_access_level: level)
visible_nodes = subject.nodes_visible_to_user(user, [link])
expect(visible_nodes).to include(link)
end
end
end
end
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment