summaryrefslogtreecommitdiff
path: root/app/controllers/concerns
diff options
context:
space:
mode:
authorMayra Cabrera <mcabrera@gitlab.com>2018-07-23 09:23:08 +0000
committerGrzegorz Bizon <grzegorz@gitlab.com>2018-07-23 09:23:08 +0000
commitf2c46672cae763bb213e8aa14253e5eea48c1064 (patch)
tree708ab3375268f826b01adb2ae79e590bcb9aabd1 /app/controllers/concerns
parentd1f890e9e4c759b1b43b888c07127a05e38f53e5 (diff)
downloadgitlab-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.rb19
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?