Commit 902f49e2 authored by Felipe Artur's avatar Felipe Artur

Add license check for service desk

parent 152e5eda
...@@ -27,8 +27,7 @@ module EE ...@@ -27,8 +27,7 @@ module EE
end end
def service_desk_address def service_desk_address
return nil unless ::Gitlab::EE::ServiceDesk.enabled? return nil unless service_desk_avaiable?
return nil unless self.service_desk_enabled?
refresh_service_desk_key! if service_desk_mail_key.blank? refresh_service_desk_key! if service_desk_mail_key.blank?
...@@ -37,14 +36,18 @@ module EE ...@@ -37,14 +36,18 @@ module EE
end end
def refresh_service_desk_key! def refresh_service_desk_key!
return unless ::Gitlab::EE::ServiceDesk.enabled? return unless service_desk_avaiable?
return unless self.service_desk_enabled?
self.service_desk_mail_key = SentNotification.reply_key self.service_desk_mail_key = SentNotification.reply_key
end end
private private
def service_desk_avaiable?
@service_desk_available ||=
EE::Gitlab::ServiceDesk.enabled? && service_desk_enabled?
end
def auto_refresh_service_desk_key def auto_refresh_service_desk_key
if service_desk_mail_key.blank? || service_desk_enabled_changed? if service_desk_mail_key.blank? || service_desk_enabled_changed?
refresh_service_desk_key! refresh_service_desk_key!
......
require 'gitlab/ee/service_desk' require 'ee/gitlab/service_desk'
module EE module EE
module NotificationService module NotificationService
...@@ -9,7 +9,7 @@ module EE ...@@ -9,7 +9,7 @@ module EE
end end
def send_service_desk_notification(note) def send_service_desk_notification(note)
return unless ::Gitlab::EE::ServiceDesk.enabled? return unless EE::Gitlab::ServiceDesk.enabled?
return unless note.noteable_type == 'Issue' return unless note.noteable_type == 'Issue'
issue = note.noteable issue = note.noteable
......
module Gitlab module EE
module EE module Gitlab
module ServiceDesk module ServiceDesk
def self.enabled? def self.enabled?
# TODO ::License.current && ::License.current.add_on?('GitLab_ServiceDesk')
true
end end
end end
end end
......
...@@ -6,7 +6,7 @@ module Gitlab ...@@ -6,7 +6,7 @@ module Gitlab
include ReplyProcessing include ReplyProcessing
def can_handle? def can_handle?
Gitlab::EE::ServiceDesk.enabled? && service_desk_key.present? ::EE::Gitlab::ServiceDesk.enabled? && service_desk_key.present?
end end
def execute def execute
......
...@@ -17,13 +17,16 @@ describe Gitlab::Email::Handler::EE::ServiceDeskHandler do ...@@ -17,13 +17,16 @@ describe Gitlab::Email::Handler::EE::ServiceDeskHandler do
project.update(service_desk_mail_key: 'somemailkey') project.update(service_desk_mail_key: 'somemailkey')
allow(Notify).to receive(:service_desk_thank_you_email) allow(Notify).to receive(:service_desk_thank_you_email)
.with(instance_of(Integer)).and_return(double(deliver_later!: true)) .with(instance_of(Fixnum)).and_return(double(deliver_later!: true))
allow_any_instance_of(License).to receive(:add_on?).and_call_original
allow_any_instance_of(License).to receive(:add_on?).with('GitLab_ServiceDesk') { true }
end end
it 'receives the email and creates issue' do it 'sends thank you the email and creates issue' do
setup_attachment setup_attachment
expect(Notify).to receive(:service_desk_thank_you_email).with(instance_of(Integer)) expect(Notify).to receive(:service_desk_thank_you_email).with(instance_of(Fixnum))
expect { receiver.execute }.to change { Issue.count }.by(1) expect { receiver.execute }.to change { Issue.count }.by(1)
...@@ -42,12 +45,25 @@ describe Gitlab::Email::Handler::EE::ServiceDeskHandler do ...@@ -42,12 +45,25 @@ describe Gitlab::Email::Handler::EE::ServiceDeskHandler do
.and_return(nil) .and_return(nil)
end end
it "creates issue and does not send thank you email" do it "does not send thank you email but create an issue" do
expect(Notify).not_to receive(:service_desk_thank_you_email) expect(Notify).not_to receive(:service_desk_thank_you_email)
expect { receiver.execute }.to change { Issue.count }.by(1) expect { receiver.execute }.to change { Issue.count }.by(1)
end end
end end
context 'when license does not support service desk' do
before do
allow_any_instance_of(License).to receive(:add_on?).and_call_original
allow_any_instance_of(License).to receive(:add_on?).with('GitLab_ServiceDesk') { false }
end
it 'does not create an issue or send email' do
expect(Notify).not_to receive(:service_desk_thank_you_email)
expect { receiver.execute rescue nil }.not_to change { Issue.count }
end
end
end end
context 'when service desk is not enabled' do context 'when service desk is not enabled' do
......
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