From 18f25bc94282a29029721ceeb9b9c6db354ce45f Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Sat, 19 Mar 2016 18:58:52 +0100 Subject: Update reference unfolder according to recent ability changes Commit 43d8bdb4f048cbeb5675ed9120cb1aeb415b9586 introduced additional checks for permissions to read issue in references extractor. --- app/services/issues/move_service.rb | 3 ++- lib/gitlab/gfm/reference_unfolder.rb | 5 +++-- spec/lib/gitlab/gfm/reference_unfolder_spec.rb | 7 ++++++- spec/lib/gitlab/reference_extractor_spec.rb | 5 ++++- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/services/issues/move_service.rb b/app/services/issues/move_service.rb index 45b4b50c0f6..892acc8c04d 100644 --- a/app/services/issues/move_service.rb +++ b/app/services/issues/move_service.rb @@ -77,7 +77,8 @@ module Issues end def unfold_references(content) - unfolder = Gitlab::Gfm::ReferenceUnfolder.new(content, @old_project) + unfolder = Gitlab::Gfm::ReferenceUnfolder.new(content, @old_project, + @current_user) unfolder.unfold(@new_project) end diff --git a/lib/gitlab/gfm/reference_unfolder.rb b/lib/gitlab/gfm/reference_unfolder.rb index cf8de88b856..94c09761960 100644 --- a/lib/gitlab/gfm/reference_unfolder.rb +++ b/lib/gitlab/gfm/reference_unfolder.rb @@ -29,9 +29,10 @@ module Gitlab # http://gitlab.com/some/link/#1234, and code `puts #1234`' # class ReferenceUnfolder - def initialize(text, project) + def initialize(text, project, user) @text = text @project = project + @user = user @original = markdown(text) end @@ -61,7 +62,7 @@ module Gitlab def referables return @referables if @referables - extractor = Gitlab::ReferenceExtractor.new(@project) + extractor = Gitlab::ReferenceExtractor.new(@project, @user) extractor.analyze(@text) @referables = extractor.all end diff --git a/spec/lib/gitlab/gfm/reference_unfolder_spec.rb b/spec/lib/gitlab/gfm/reference_unfolder_spec.rb index 40cdb7e1452..2e3b77d9180 100644 --- a/spec/lib/gitlab/gfm/reference_unfolder_spec.rb +++ b/spec/lib/gitlab/gfm/reference_unfolder_spec.rb @@ -4,9 +4,14 @@ describe Gitlab::Gfm::ReferenceUnfolder do let(:text) { 'some text' } let(:old_project) { create(:project) } let(:new_project) { create(:project) } + let(:user) { create(:user) } + + before { old_project.team << [user, :guest] } describe '#unfold' do - subject { described_class.new(text, old_project).unfold(new_project) } + subject do + described_class.new(text, old_project, user).unfold(new_project) + end context 'multiple issues and merge requests referenced' do let!(:issue_first) { create(:issue, project: old_project) } diff --git a/spec/lib/gitlab/reference_extractor_spec.rb b/spec/lib/gitlab/reference_extractor_spec.rb index f2922160331..7c617723e6d 100644 --- a/spec/lib/gitlab/reference_extractor_spec.rb +++ b/spec/lib/gitlab/reference_extractor_spec.rb @@ -130,7 +130,10 @@ describe Gitlab::ReferenceExtractor, lib: true do let(:label) { create(:label, project: project) } let(:text) { "Ref. #{issue.to_reference} and #{label.to_reference}" } - before { subject.analyze(text) } + before do + project.team << [project.creator, :developer] + subject.analyze(text) + end it 'returns all referables' do expect(subject.all).to match_array([issue, label]) -- cgit v1.2.1