diff options
| author | Ciro Santilli <ciro.santilli@gmail.com> | 2014-10-19 23:20:55 +0200 |
|---|---|---|
| committer | Ciro Santilli <ciro.santilli@gmail.com> | 2014-10-19 23:36:23 +0200 |
| commit | 9e1b97ad99b239ace4a9383ef9d2bf0855c0dfd7 (patch) | |
| tree | bd87d0d8d609e966fa681dd671a63b6383c1b00d /app/controllers/application_controller.rb | |
| parent | 3880bb61760ef1f69b0df49148202ff6b4208f01 (diff) | |
| download | gitlab-ce-9e1b97ad99b239ace4a9383ef9d2bf0855c0dfd7.tar.gz | |
Use @project on controllers, don't call method
Also memoize the method to ensure that other methods in
ApplicationController that rely on it can call it efficiently.
Diffstat (limited to 'app/controllers/application_controller.rb')
| -rw-r--r-- | app/controllers/application_controller.rb | 41 |
1 files changed, 22 insertions, 19 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 13d8d2a3e0a..955f3a14af5 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -81,28 +81,31 @@ class ApplicationController < ActionController::Base end def project - id = params[:project_id] || params[:id] - - # Redirect from - # localhost/group/project.git - # to - # localhost/group/project - # - if id =~ /\.git\Z/ - redirect_to request.original_url.gsub(/\.git\Z/, '') and return - end + unless @project + id = params[:project_id] || params[:id] + + # Redirect from + # localhost/group/project.git + # to + # localhost/group/project + # + if id =~ /\.git\Z/ + redirect_to request.original_url.gsub(/\.git\Z/, '') and return + end - @project = Project.find_with_namespace(id) + @project = Project.find_with_namespace(id) - if @project and can?(current_user, :read_project, @project) - @project - elsif current_user.nil? - @project = nil - authenticate_user! - else - @project = nil - render_404 and return + if @project and can?(current_user, :read_project, @project) + @project + elsif current_user.nil? + @project = nil + authenticate_user! + else + @project = nil + render_404 and return + end end + @project end def repository |
