diff options
author | Douwe Maan <douwe@gitlab.com> | 2017-01-26 01:23:38 +0300 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2017-01-26 01:23:38 +0300 |
commit | d1eb85dd30d0f67874b55bd1c1be5d611e1644f6 (patch) | |
tree | 9a96621610aca6d3c4b88d1da1b0209fa83a689f /app | |
parent | a24e9a0e3c65093a6eb618bd232639a689e19e70 (diff) | |
parent | 58aad16d1cb859cdf99e93e0b2ceaab64b1ea5a3 (diff) |
Merge branch 'fix/26518' into 'master'
Fix access to the wiki code via HTTP when repository feature disabled
Closes #26518
See merge request !8758
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/projects/git_http_client_controller.rb | 12 | ||||
-rw-r--r-- | app/controllers/projects/git_http_controller.rb | 6 |
2 files changed, 12 insertions, 6 deletions
diff --git a/app/controllers/projects/git_http_client_controller.rb b/app/controllers/projects/git_http_client_controller.rb index 8714349e27f..70845617d3c 100644 --- a/app/controllers/projects/git_http_client_controller.rb +++ b/app/controllers/projects/git_http_client_controller.rb @@ -109,12 +109,14 @@ class Projects::GitHttpClientController < Projects::ApplicationController end def repository + wiki? ? project.wiki.repository : project.repository + end + + def wiki? + return @wiki if defined?(@wiki) + _, suffix = project_id_with_suffix - if suffix == '.wiki.git' - project.wiki.repository - else - project.repository - end + @wiki = suffix == '.wiki.git' end def render_not_found diff --git a/app/controllers/projects/git_http_controller.rb b/app/controllers/projects/git_http_controller.rb index 9184dcccac5..278098fcc58 100644 --- a/app/controllers/projects/git_http_controller.rb +++ b/app/controllers/projects/git_http_controller.rb @@ -84,7 +84,7 @@ class Projects::GitHttpController < Projects::GitHttpClientController end def access - @access ||= Gitlab::GitAccess.new(user, project, 'http', authentication_abilities: authentication_abilities) + @access ||= access_klass.new(user, project, 'http', authentication_abilities: authentication_abilities) end def access_check @@ -102,4 +102,8 @@ class Projects::GitHttpController < Projects::GitHttpClientController access_check.allowed? end + + def access_klass + @access_klass ||= wiki? ? Gitlab::GitAccessWiki : Gitlab::GitAccess + end end |