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.
This commit is contained in:
parent
3880bb6176
commit
9e1b97ad99
6 changed files with 42 additions and 39 deletions
|
@ -38,10 +38,10 @@ class Admin::ProjectsController < Admin::ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def group
|
def group
|
||||||
@group ||= project.group
|
@group ||= @project.group
|
||||||
end
|
end
|
||||||
|
|
||||||
def repository
|
def repository
|
||||||
@repository ||= project.repository
|
@repository ||= @project.repository
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -81,28 +81,31 @@ class ApplicationController < ActionController::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
def project
|
def project
|
||||||
id = params[:project_id] || params[:id]
|
unless @project
|
||||||
|
id = params[:project_id] || params[:id]
|
||||||
|
|
||||||
# Redirect from
|
# Redirect from
|
||||||
# localhost/group/project.git
|
# localhost/group/project.git
|
||||||
# to
|
# to
|
||||||
# localhost/group/project
|
# localhost/group/project
|
||||||
#
|
#
|
||||||
if id =~ /\.git\Z/
|
if id =~ /\.git\Z/
|
||||||
redirect_to request.original_url.gsub(/\.git\Z/, '') and return
|
redirect_to request.original_url.gsub(/\.git\Z/, '') and return
|
||||||
end
|
end
|
||||||
|
|
||||||
@project = Project.find_with_namespace(id)
|
@project = Project.find_with_namespace(id)
|
||||||
|
|
||||||
if @project and can?(current_user, :read_project, @project)
|
if @project and can?(current_user, :read_project, @project)
|
||||||
@project
|
@project
|
||||||
elsif current_user.nil?
|
elsif current_user.nil?
|
||||||
@project = nil
|
@project = nil
|
||||||
authenticate_user!
|
authenticate_user!
|
||||||
else
|
else
|
||||||
@project = nil
|
@project = nil
|
||||||
render_404 and return
|
render_404 and return
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@project
|
||||||
end
|
end
|
||||||
|
|
||||||
def repository
|
def repository
|
||||||
|
|
|
@ -11,12 +11,12 @@ class Projects::CommitController < Projects::ApplicationController
|
||||||
def show
|
def show
|
||||||
return git_not_found! unless @commit
|
return git_not_found! unless @commit
|
||||||
|
|
||||||
@line_notes = project.notes.for_commit_id(commit.id).inline
|
@line_notes = @project.notes.for_commit_id(commit.id).inline
|
||||||
@branches = project.repository.branch_names_contains(commit.id)
|
@branches = @project.repository.branch_names_contains(commit.id)
|
||||||
@diffs = @commit.diffs
|
@diffs = @commit.diffs
|
||||||
@note = project.build_commit_note(commit)
|
@note = @project.build_commit_note(commit)
|
||||||
@notes_count = project.notes.for_commit_id(commit.id).count
|
@notes_count = @project.notes.for_commit_id(commit.id).count
|
||||||
@notes = project.notes.for_commit_id(@commit.id).not_inline.fresh
|
@notes = @project.notes.for_commit_id(@commit.id).not_inline.fresh
|
||||||
@noteable = @commit
|
@noteable = @commit
|
||||||
@comments_allowed = @reply_allowed = true
|
@comments_allowed = @reply_allowed = true
|
||||||
@comments_target = {
|
@comments_target = {
|
||||||
|
@ -32,6 +32,6 @@ class Projects::CommitController < Projects::ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def commit
|
def commit
|
||||||
@commit ||= project.repository.commit(params[:id])
|
@commit ||= @project.repository.commit(params[:id])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -42,7 +42,7 @@ class Projects::DeployKeysController < Projects::ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def enable
|
def enable
|
||||||
project.deploy_keys << available_keys.find(params[:id])
|
@project.deploy_keys << available_keys.find(params[:id])
|
||||||
|
|
||||||
redirect_to project_deploy_keys_path(@project)
|
redirect_to project_deploy_keys_path(@project)
|
||||||
end
|
end
|
||||||
|
|
|
@ -10,7 +10,7 @@ class Projects::TeamMembersController < Projects::ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def new
|
def new
|
||||||
@user_project_relation = project.project_members.new
|
@user_project_relation = @project.project_members.new
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
|
@ -26,7 +26,7 @@ class Projects::TeamMembersController < Projects::ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
@user_project_relation = project.project_members.find_by(user_id: member)
|
@user_project_relation = @project.project_members.find_by(user_id: member)
|
||||||
@user_project_relation.update_attributes(member_params)
|
@user_project_relation.update_attributes(member_params)
|
||||||
|
|
||||||
unless @user_project_relation.valid?
|
unless @user_project_relation.valid?
|
||||||
|
@ -36,7 +36,7 @@ class Projects::TeamMembersController < Projects::ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
@user_project_relation = project.project_members.find_by(user_id: member)
|
@user_project_relation = @project.project_members.find_by(user_id: member)
|
||||||
@user_project_relation.destroy
|
@user_project_relation.destroy
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
|
@ -46,7 +46,7 @@ class Projects::TeamMembersController < Projects::ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def leave
|
def leave
|
||||||
project.project_members.find_by(user_id: current_user).destroy
|
@project.project_members.find_by(user_id: current_user).destroy
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html { redirect_to :back }
|
format.html { redirect_to :back }
|
||||||
|
|
|
@ -76,7 +76,7 @@ class ProjectsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def import
|
def import
|
||||||
if project.import_finished?
|
if @project.import_finished?
|
||||||
redirect_to @project
|
redirect_to @project
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -98,7 +98,7 @@ class ProjectsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
return access_denied! unless can?(current_user, :remove_project, project)
|
return access_denied! unless can?(current_user, :remove_project, @project)
|
||||||
|
|
||||||
::Projects::DestroyService.new(@project, current_user, {}).execute
|
::Projects::DestroyService.new(@project, current_user, {}).execute
|
||||||
|
|
||||||
|
@ -148,8 +148,8 @@ class ProjectsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def archive
|
def archive
|
||||||
return access_denied! unless can?(current_user, :archive_project, project)
|
return access_denied! unless can?(current_user, :archive_project, @project)
|
||||||
project.archive!
|
@project.archive!
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html { redirect_to @project }
|
format.html { redirect_to @project }
|
||||||
|
@ -157,8 +157,8 @@ class ProjectsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def unarchive
|
def unarchive
|
||||||
return access_denied! unless can?(current_user, :archive_project, project)
|
return access_denied! unless can?(current_user, :archive_project, @project)
|
||||||
project.unarchive!
|
@project.unarchive!
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html { redirect_to @project }
|
format.html { redirect_to @project }
|
||||||
|
|
Loading…
Reference in a new issue