diff options
author | Mayra Cabrera <mcabrera@gitlab.com> | 2018-07-23 09:23:08 +0000 |
---|---|---|
committer | Grzegorz Bizon <grzegorz@gitlab.com> | 2018-07-23 09:23:08 +0000 |
commit | f2c46672cae763bb213e8aa14253e5eea48c1064 (patch) | |
tree | 708ab3375268f826b01adb2ae79e590bcb9aabd1 /app/controllers/concerns | |
parent | d1f890e9e4c759b1b43b888c07127a05e38f53e5 (diff) | |
download | gitlab-ce-f2c46672cae763bb213e8aa14253e5eea48c1064.tar.gz |
Resolve "Deploy Tokens failed to clone LFS repository"
Diffstat (limited to 'app/controllers/concerns')
-rw-r--r-- | app/controllers/concerns/lfs_request.rb | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/app/controllers/concerns/lfs_request.rb b/app/controllers/concerns/lfs_request.rb index 79ee5b2f91e..4584ff782a3 100644 --- a/app/controllers/concerns/lfs_request.rb +++ b/app/controllers/concerns/lfs_request.rb @@ -71,7 +71,22 @@ module LfsRequest def lfs_download_access? return false unless project.lfs_enabled? - ci? || lfs_deploy_token? || user_can_download_code? || build_can_download_code? + ci? || lfs_deploy_token? || user_can_download_code? || build_can_download_code? || deploy_token_can_download_code? + end + + def deploy_token_can_download_code? + deploy_token_present? && + deploy_token.project == project && + deploy_token.active? && + deploy_token.read_repository? + end + + def deploy_token_present? + user && user.is_a?(DeployToken) + end + + def deploy_token + user end def lfs_upload_access? @@ -86,7 +101,7 @@ module LfsRequest end def user_can_download_code? - has_authentication_ability?(:download_code) && can?(user, :download_code, project) + has_authentication_ability?(:download_code) && can?(user, :download_code, project) && !deploy_token_present? end def build_can_download_code? |