diff options
Diffstat (limited to 'lib/constraints/project_url_constrainer.rb')
-rw-r--r-- | lib/constraints/project_url_constrainer.rb | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/constraints/project_url_constrainer.rb b/lib/constraints/project_url_constrainer.rb index a10b4657d7d..5bef29eb1da 100644 --- a/lib/constraints/project_url_constrainer.rb +++ b/lib/constraints/project_url_constrainer.rb @@ -2,12 +2,12 @@ class ProjectUrlConstrainer def matches?(request) namespace_path = request.params[:namespace_id] project_path = request.params[:project_id] || request.params[:id] - full_path = namespace_path + '/' + project_path + full_path = [namespace_path, project_path].join('/') - unless ProjectPathValidator.valid?(project_path) - return false - end + return false unless DynamicPathValidator.valid_project_path?(full_path) - Project.find_by_full_path(full_path).present? + # We intentionally allow SELECT(*) here so result of this query can be used + # as cache for further Project.find_by_full_path calls within request + Project.find_by_full_path(full_path, follow_redirects: request.get?).present? end end |