diff options
author | Douwe Maan <douwe@gitlab.com> | 2017-01-25 22:23:38 +0000 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2017-01-27 14:12:07 -0500 |
commit | 6bece889b3784867e1b8cbb566d2d8343312cf55 (patch) | |
tree | c0f2106dfec0fd8682aa7be00616e9d69a00f17f /app | |
parent | 9a82a6ce05d1da620df3bb7d8ae6f00d2b036db9 (diff) | |
download | gitlab-ce-6bece889b3784867e1b8cbb566d2d8343312cf55.tar.gz |
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 |