Do not regenerate the lfs_token
every time git-lfs-authenticate
is called, instead return the saved token if one is present.
This commit is contained in:
parent
90578f4ad0
commit
a4944fb715
2 changed files with 29 additions and 0 deletions
|
@ -18,6 +18,8 @@ module Gitlab
|
||||||
end
|
end
|
||||||
|
|
||||||
def generate
|
def generate
|
||||||
|
return value if value
|
||||||
|
|
||||||
token = Devise.friendly_token(TOKEN_LENGTH)
|
token = Devise.friendly_token(TOKEN_LENGTH)
|
||||||
|
|
||||||
Gitlab::Redis.with do |redis|
|
Gitlab::Redis.with do |redis|
|
||||||
|
|
|
@ -257,6 +257,29 @@ describe 'Git LFS API and storage' do
|
||||||
it_behaves_like 'responds with a file'
|
it_behaves_like 'responds with a file'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'when using a user key' do
|
||||||
|
let(:authorization) { authorize_user_key }
|
||||||
|
|
||||||
|
context 'when user allowed' do
|
||||||
|
let(:update_permissions) do
|
||||||
|
project.team << [user, :master]
|
||||||
|
project.lfs_objects << lfs_object
|
||||||
|
end
|
||||||
|
|
||||||
|
it_behaves_like 'responds with a file'
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when user not allowed' do
|
||||||
|
let(:update_permissions) do
|
||||||
|
project.lfs_objects << lfs_object
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'responds with status 404' do
|
||||||
|
expect(response).to have_http_status(404)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context 'when build is authorized as' do
|
context 'when build is authorized as' do
|
||||||
let(:authorization) { authorize_ci_project }
|
let(:authorization) { authorize_ci_project }
|
||||||
|
|
||||||
|
@ -1113,6 +1136,10 @@ describe 'Git LFS API and storage' do
|
||||||
ActionController::HttpAuthentication::Basic.encode_credentials("lfs+deploy-key-#{key.id}", Gitlab::LfsToken.new(key).generate)
|
ActionController::HttpAuthentication::Basic.encode_credentials("lfs+deploy-key-#{key.id}", Gitlab::LfsToken.new(key).generate)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def authorize_user_key
|
||||||
|
ActionController::HttpAuthentication::Basic.encode_credentials(user.username, Gitlab::LfsToken.new(user).generate)
|
||||||
|
end
|
||||||
|
|
||||||
def fork_project(project, user, object = nil)
|
def fork_project(project, user, object = nil)
|
||||||
allow(RepositoryForkWorker).to receive(:perform_async).and_return(true)
|
allow(RepositoryForkWorker).to receive(:perform_async).and_return(true)
|
||||||
Projects::ForkService.new(project, user, {}).execute
|
Projects::ForkService.new(project, user, {}).execute
|
||||||
|
|
Loading…
Reference in a new issue