Disable internal issue tracker if external tracker in use

Closes #2006
This commit is contained in:
Stan Hu 2015-07-17 22:54:04 -07:00
parent 6615428679
commit f33fe50f0d
3 changed files with 39 additions and 1 deletions

View file

@ -1,6 +1,7 @@
Please view this file on the master branch, on stable branches it's out of date.
v 7.14.0 (unreleased)
- Disable internal issue tracker controller if external tracker is used (Stan Hu)
- Expire Rails cache entries after two weeks to prevent endless Redis growth
- Add support for destroying project milestones (Stan Hu)

View file

@ -131,7 +131,7 @@ class Projects::IssuesController < Projects::ApplicationController
end
def module_enabled
return render_404 unless @project.issues_enabled
return render_404 unless @project.issues_enabled && @project.default_issues_tracker?
end
# Since iids are implemented only in 6.1

View file

@ -0,0 +1,37 @@
require('spec_helper')
describe Projects::IssuesController do
let(:project) { create(:project) }
let(:user) { create(:user) }
let(:issue) { create(:issue, project: project) }
before do
sign_in(user)
project.team << [user, :developer]
controller.instance_variable_set(:@project, project)
end
describe "GET #index" do
it "returns index" do
get :index, namespace_id: project.namespace.id, project_id: project.id
expect(response.status).to eq(200)
end
it "returns 404 when issues are disabled" do
project.issues_enabled = false
project.save
get :index, namespace_id: project.namespace.id, project_id: project.id
expect(response.status).to eq(404)
end
it "returns 404 when external issue tracker is enabled" do
allow(project).to receive(:default_issues_tracker?).and_return(false)
get :index, namespace_id: project.namespace.id, project_id: project.id
expect(response.status).to eq(404)
end
end
end