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
@@ -171,48 +171,27 @@ module ProjectsHelper
Loading
@@ -171,48 +171,27 @@ module ProjectsHelper
nav_tabs << :merge_requests nav_tabs << :merge_requests
end 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) if Gitlab.config.registry.enabled && can?(current_user, :read_container_image, project)
nav_tabs << :container_registry nav_tabs << :container_registry
end end
   
if can?(current_user, :read_environment, project) tab_ability_map = {
nav_tabs << :environments environments: :read_environment,
end milestones: :read_milestone,
pipelines: :read_pipeline,
if can?(current_user, :admin_project, project) snippets: :read_project_snippet,
nav_tabs << :settings settings: :admin_project,
end builds: :read_build,
labels: :read_label,
if can?(current_user, :read_project_member, project) issues: :read_issue,
nav_tabs << :team team: :read_project_member,
end wiki: :read_wiki
}
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
   
if can?(current_user, :read_milestone, project) tab_ability_map.each do |tab, ability|
nav_tabs << :milestones if can?(current_user, ability, project)
nav_tabs << tab
end
end end
   
nav_tabs.flatten nav_tabs.flatten
Loading
Loading
Loading
@@ -171,9 +171,7 @@ class ProjectPolicy < BasePolicy
Loading
@@ -171,9 +171,7 @@ class ProjectPolicy < BasePolicy
def disabled_features! def disabled_features!
repository_enabled = project.feature_available?(:repository, user) repository_enabled = project.feature_available?(:repository, user)
   
unless project.feature_available?(:issues, user) block_issues_abilities
cannot!(*named_abilities(:issue))
end
   
unless project.feature_available?(:merge_requests, user) && repository_enabled unless project.feature_available?(:merge_requests, user) && repository_enabled
cannot!(*named_abilities(:merge_request)) cannot!(*named_abilities(:merge_request))
Loading
@@ -250,6 +248,15 @@ class ProjectPolicy < BasePolicy
Loading
@@ -250,6 +248,15 @@ class ProjectPolicy < BasePolicy
) )
end 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) def named_abilities(name)
[ [
:"read_#{name}", :"read_#{name}",
Loading
Loading
---
title: Parse JIRA issue references even if Issue Tracker is disabled
merge_request:
author:
Loading
@@ -42,6 +42,17 @@ describe 'Edit Project Settings', feature: true do
Loading
@@ -42,6 +42,17 @@ describe 'Edit Project Settings', feature: true do
end end
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 context "pipelines subtabs" do
it "shows builds when enabled" do it "shows builds when enabled" do
visit namespace_project_pipelines_path(project.namespace, project) visit namespace_project_pipelines_path(project.namespace, project)
Loading
Loading
Loading
@@ -12,7 +12,17 @@ describe Banzai::ReferenceParser::ExternalIssueParser, lib: true do
Loading
@@ -12,7 +12,17 @@ describe Banzai::ReferenceParser::ExternalIssueParser, lib: true do
context 'when the link has a data-issue attribute' do context 'when the link has a data-issue attribute' do
before { link['data-external-issue'] = 123 } 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
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