Commit 7b8a8169 authored by Justin Ho Tuan Duong's avatar Justin Ho Tuan Duong Committed by Luke Duncalfe

Add extra checks for project-specific views

Some parts of integrations are only meant for projects.
They fail to render if a project is not available, so it's
best to hide them for now on group/instance level
integrations.

https://gitlab.com/gitlab-org/gitlab/-/issues/298854
parent 2aa69e9c
......@@ -413,6 +413,10 @@ class Service < ApplicationRecord
!instance? && !group_id
end
def project_level?
project_id.present?
end
def parent
project || group
end
......
......@@ -10,8 +10,8 @@
%p.inline
= s_("MattermostService|See list of available commands in Mattermost after setting up this service, by entering")
%kbd.inline /&lt;trigger&gt; help
- unless enabled || @service.template?
- if !enabled && @service.project_level?
= render 'projects/services/mattermost_slash_commands/detailed_help', subject: @service
- if enabled && !@service.template?
- if enabled && @service.project_level?
= render 'projects/services/mattermost_slash_commands/installation_info', subject: @service
......@@ -11,7 +11,7 @@
%p.inline
= s_("SlackService|See list of available commands in Slack after setting up this service, by entering")
%kbd.inline /&lt;command&gt; help
- unless @service.template?
- if @service.project_level?
%p= _("To set up this service:")
%ul.list-unstyled.indent-list
%li
......
---
title: Hide project-specific views on group / instance level integrations
merge_request: 57381
author:
type: fixed
......@@ -6,5 +6,5 @@
%p.inline
= _("See the list of available commands in Slack after setting up this service by entering")
%kbd.inline /gitlab help
- unless @service.template? || @service.instance?
- if @service.project_level?
= render "projects/services/#{@service.to_param}/slack_integration_form"
......@@ -202,6 +202,16 @@ RSpec.describe Service do
end
end
describe '#project_level?' do
it 'is true when service has a project' do
expect(build(:service, project: project)).to be_project_level
end
it 'is false when service has no project' do
expect(build(:service, project: nil)).not_to be_project_level
end
end
describe '.find_or_initialize_non_project_specific_integration' do
let!(:service1) { create(:jira_service, project_id: nil, group_id: group.id) }
let!(:service2) { create(:jira_service) }
......
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