Commit 612b8806 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Fix internal API for missing project or key

Signed-off-by: default avatarDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
parent 06b7907c
...@@ -33,15 +33,20 @@ module API ...@@ -33,15 +33,20 @@ module API
end end
project = Project.find_with_namespace(project_path) project = Project.find_with_namespace(project_path)
return false unless project
unless project
return Gitlab::GitAccessStatus.new(false, 'No such project')
end
actor = if params[:key_id] actor = if params[:key_id]
Key.find(params[:key_id]) Key.find_by(id: params[:key_id])
elsif params[:user_id] elsif params[:user_id]
User.find(params[:user_id]) User.find_by(id: params[:user_id])
end end
return false unless actor unless actor
return Gitlab::GitAccessStatus.new(false, 'No such user or key')
end
access.check( access.check(
actor, actor,
......
...@@ -26,7 +26,7 @@ describe API::API, api: true do ...@@ -26,7 +26,7 @@ describe API::API, api: true do
end end
end end
describe "GET /internal/allowed" do describe "POST /internal/allowed" do
context "access granted" do context "access granted" do
before do before do
project.team << [user, :developer] project.team << [user, :developer]
...@@ -140,7 +140,7 @@ describe API::API, api: true do ...@@ -140,7 +140,7 @@ describe API::API, api: true do
archive(key, project) archive(key, project)
response.status.should == 200 response.status.should == 200
response.body.should == 'true' JSON.parse(response.body)["status"].should be_true
end end
end end
...@@ -149,10 +149,28 @@ describe API::API, api: true do ...@@ -149,10 +149,28 @@ describe API::API, api: true do
archive(key, project) archive(key, project)
response.status.should == 200 response.status.should == 200
response.body.should == 'false' JSON.parse(response.body)["status"].should be_false
end end
end end
end end
context 'project does not exist' do
it do
pull(key, OpenStruct.new(path_with_namespace: 'gitlab/notexists'))
response.status.should == 200
JSON.parse(response.body)["status"].should be_false
end
end
context 'user does not exist' do
it do
pull(OpenStruct.new(id: 0), project)
response.status.should == 200
JSON.parse(response.body)["status"].should be_false
end
end
end end
def pull(key, project) def pull(key, project)
......
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