Commit 078a8f0e662a1626b53bbf7f7c3e2b0599c94810

Authored by Cyril
1 parent 0439387b

factorize before_filters and layout for projects related controllers

app/controllers/application_controller.rb
@@ -76,7 +76,7 @@ class ApplicationController < ActionController::Base @@ -76,7 +76,7 @@ class ApplicationController < ActionController::Base
76 end 76 end
77 77
78 def project 78 def project
79 - @project ||= current_user.projects.find_by_code(params[:project_id]) 79 + @project ||= current_user.projects.find_by_code(params[:project_id] || params[:id])
80 @project || render_404 80 @project || render_404
81 end 81 end
82 82
app/controllers/commits_controller.rb
1 require "base64" 1 require "base64"
2 2
3 -class CommitsController < ApplicationController  
4 - before_filter :project  
5 - layout "project"  
6 - 3 +class CommitsController < ProjectController
7 # Authorize 4 # Authorize
8 - before_filter :add_project_abilities  
9 before_filter :authorize_read_project! 5 before_filter :authorize_read_project!
10 before_filter :authorize_code_access! 6 before_filter :authorize_code_access!
11 before_filter :require_non_empty_project 7 before_filter :require_non_empty_project
app/controllers/deploy_keys_controller.rb
1 -class DeployKeysController < ApplicationController 1 +class DeployKeysController < ProjectController
2 respond_to :html 2 respond_to :html
3 - layout "project"  
4 - before_filter :project  
5 3
6 # Authorize 4 # Authorize
7 - before_filter :add_project_abilities  
8 before_filter :authorize_admin_project! 5 before_filter :authorize_admin_project!
9 6
10 - def project  
11 - @project ||= Project.find_by_code(params[:project_id])  
12 - end  
13 -  
14 def index 7 def index
15 @keys = @project.deploy_keys.all 8 @keys = @project.deploy_keys.all
16 end 9 end
app/controllers/hooks_controller.rb
1 -class HooksController < ApplicationController  
2 - before_filter :project  
3 - layout "project"  
4 - 1 +class HooksController < ProjectController
5 # Authorize 2 # Authorize
6 - before_filter :add_project_abilities  
7 before_filter :authorize_read_project! 3 before_filter :authorize_read_project!
8 before_filter :authorize_admin_project!, only: [:new, :create, :destroy] 4 before_filter :authorize_admin_project!, only: [:new, :create, :destroy]
9 5
app/controllers/issues_controller.rb
1 -class IssuesController < ApplicationController  
2 - before_filter :project 1 +class IssuesController < ProjectController
3 before_filter :module_enabled 2 before_filter :module_enabled
4 before_filter :issue, only: [:edit, :update, :destroy, :show] 3 before_filter :issue, only: [:edit, :update, :destroy, :show]
5 helper_method :issues_filter 4 helper_method :issues_filter
6 5
7 - layout "project"  
8 -  
9 - # Authorize  
10 - before_filter :add_project_abilities  
11 -  
12 # Allow read any issue 6 # Allow read any issue
13 before_filter :authorize_read_issue! 7 before_filter :authorize_read_issue!
14 8
app/controllers/labels_controller.rb
1 -class LabelsController < ApplicationController  
2 - before_filter :project 1 +class LabelsController < ProjectController
3 before_filter :module_enabled 2 before_filter :module_enabled
4 3
5 - layout "project"  
6 -  
7 - # Authorize  
8 - before_filter :add_project_abilities  
9 -  
10 # Allow read any issue 4 # Allow read any issue
11 before_filter :authorize_read_issue! 5 before_filter :authorize_read_issue!
12 6
app/controllers/merge_requests_controller.rb
1 -class MergeRequestsController < ApplicationController  
2 - before_filter :project 1 +class MergeRequestsController < ProjectController
3 before_filter :module_enabled 2 before_filter :module_enabled
4 before_filter :merge_request, only: [:edit, :update, :destroy, :show, :commits, :diffs, :automerge, :automerge_check, :raw] 3 before_filter :merge_request, only: [:edit, :update, :destroy, :show, :commits, :diffs, :automerge, :automerge_check, :raw]
5 before_filter :validates_merge_request, only: [:show, :diffs, :raw] 4 before_filter :validates_merge_request, only: [:show, :diffs, :raw]
6 before_filter :define_show_vars, only: [:show, :diffs] 5 before_filter :define_show_vars, only: [:show, :diffs]
7 - layout "project"  
8 -  
9 - # Authorize  
10 - before_filter :add_project_abilities  
11 6
12 # Allow read any merge_request 7 # Allow read any merge_request
13 before_filter :authorize_read_merge_request! 8 before_filter :authorize_read_merge_request!
app/controllers/milestones_controller.rb
1 -class MilestonesController < ApplicationController  
2 - before_filter :project 1 +class MilestonesController < ProjectController
3 before_filter :module_enabled 2 before_filter :module_enabled
4 before_filter :milestone, only: [:edit, :update, :destroy, :show] 3 before_filter :milestone, only: [:edit, :update, :destroy, :show]
5 - layout "project"  
6 -  
7 - # Authorize  
8 - before_filter :add_project_abilities  
9 4
10 # Allow read any milestone 5 # Allow read any milestone
11 before_filter :authorize_read_milestone! 6 before_filter :authorize_read_milestone!
app/controllers/notes_controller.rb
1 -class NotesController < ApplicationController  
2 - before_filter :project  
3 - 1 +class NotesController < ProjectController
4 # Authorize 2 # Authorize
5 - before_filter :add_project_abilities  
6 -  
7 before_filter :authorize_read_note! 3 before_filter :authorize_read_note!
8 before_filter :authorize_write_note!, only: [:create] 4 before_filter :authorize_write_note!, only: [:create]
9 5
app/controllers/project_controller.rb 0 → 100644
@@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
  1 +class ProjectController < ApplicationController
  2 + before_filter :project
  3 + # Authorize
  4 + before_filter :add_project_abilities
  5 +
  6 + layout :determine_layout
  7 +
  8 + protected
  9 + def determine_layout
  10 + if @project && !@project.new_record?
  11 + 'project'
  12 + else
  13 + 'application'
  14 + end
  15 + end
  16 +end
app/controllers/projects_controller.rb
1 require Rails.root.join('lib', 'gitlab', 'graph_commit') 1 require Rails.root.join('lib', 'gitlab', 'graph_commit')
2 2
3 -class ProjectsController < ApplicationController  
4 - before_filter :project, except: [:index, :new, :create]  
5 - layout :determine_layout 3 +class ProjectsController < ProjectController
  4 + skip_before_filter :project, only: [:new, :create]
6 5
7 # Authorize 6 # Authorize
8 - before_filter :add_project_abilities  
9 before_filter :authorize_read_project!, except: [:index, :new, :create] 7 before_filter :authorize_read_project!, except: [:index, :new, :create]
10 before_filter :authorize_admin_project!, only: [:edit, :update, :destroy] 8 before_filter :authorize_admin_project!, only: [:edit, :update, :destroy]
11 before_filter :require_non_empty_project, only: [:blob, :tree, :graph] 9 before_filter :require_non_empty_project, only: [:blob, :tree, :graph]
@@ -93,19 +91,4 @@ class ProjectsController &lt; ApplicationController @@ -93,19 +91,4 @@ class ProjectsController &lt; ApplicationController
93 format.html { redirect_to root_path } 91 format.html { redirect_to root_path }
94 end 92 end
95 end 93 end
96 -  
97 - protected  
98 -  
99 - def project  
100 - @project ||= Project.find_by_code(params[:id])  
101 - @project || render_404  
102 - end  
103 -  
104 - def determine_layout  
105 - if @project && !@project.new_record?  
106 - "project"  
107 - else  
108 - "application"  
109 - end  
110 - end  
111 end 94 end
app/controllers/protected_branches_controller.rb
1 -class ProtectedBranchesController < ApplicationController  
2 - before_filter :project  
3 - 1 +class ProtectedBranchesController < ProjectController
4 # Authorize 2 # Authorize
5 - before_filter :add_project_abilities  
6 before_filter :authorize_read_project! 3 before_filter :authorize_read_project!
7 before_filter :require_non_empty_project 4 before_filter :require_non_empty_project
8 5
9 before_filter :authorize_admin_project!, only: [:destroy, :create] 6 before_filter :authorize_admin_project!, only: [:destroy, :create]
10 before_filter :render_full_content 7 before_filter :render_full_content
11 8
12 - layout "project"  
13 -  
14 def index 9 def index
15 @branches = @project.protected_branches.all 10 @branches = @project.protected_branches.all
16 @protected_branch = @project.protected_branches.new 11 @protected_branch = @project.protected_branches.new
app/controllers/refs_controller.rb
1 require 'github/markup' 1 require 'github/markup'
2 2
3 -class RefsController < ApplicationController 3 +class RefsController < ProjectController
4 include Gitlab::Encode 4 include Gitlab::Encode
5 - before_filter :project  
6 5
7 # Authorize 6 # Authorize
8 - before_filter :add_project_abilities  
9 before_filter :authorize_read_project! 7 before_filter :authorize_read_project!
10 before_filter :authorize_code_access! 8 before_filter :authorize_code_access!
11 before_filter :require_non_empty_project 9 before_filter :require_non_empty_project
@@ -14,8 +12,6 @@ class RefsController &lt; ApplicationController @@ -14,8 +12,6 @@ class RefsController &lt; ApplicationController
14 before_filter :define_tree_vars, only: [:tree, :blob, :blame, :logs_tree] 12 before_filter :define_tree_vars, only: [:tree, :blob, :blame, :logs_tree]
15 before_filter :render_full_content 13 before_filter :render_full_content
16 14
17 - layout "project"  
18 -  
19 def switch 15 def switch
20 respond_to do |format| 16 respond_to do |format|
21 format.html do 17 format.html do
app/controllers/repositories_controller.rb
1 -class RepositoriesController < ApplicationController  
2 - before_filter :project  
3 - 1 +class RepositoriesController < ProjectController
4 # Authorize 2 # Authorize
5 - before_filter :add_project_abilities  
6 before_filter :authorize_read_project! 3 before_filter :authorize_read_project!
7 before_filter :authorize_code_access! 4 before_filter :authorize_code_access!
8 before_filter :require_non_empty_project 5 before_filter :require_non_empty_project
9 before_filter :render_full_content 6 before_filter :render_full_content
10 7
11 - layout "project"  
12 -  
13 def show 8 def show
14 @activities = @project.commits_with_refs(20) 9 @activities = @project.commits_with_refs(20)
15 end 10 end
app/controllers/snippets_controller.rb
1 -class SnippetsController < ApplicationController  
2 - before_filter :project 1 +class SnippetsController < ProjectController
3 before_filter :snippet, only: [:show, :edit, :destroy, :update, :raw] 2 before_filter :snippet, only: [:show, :edit, :destroy, :update, :raw]
4 - layout "project"  
5 -  
6 - # Authorize  
7 - before_filter :add_project_abilities  
8 3
9 # Allow read any snippet 4 # Allow read any snippet
10 before_filter :authorize_read_snippet! 5 before_filter :authorize_read_snippet!
app/controllers/team_members_controller.rb
1 -class TeamMembersController < ApplicationController  
2 - before_filter :project  
3 - layout "project"  
4 - 1 +class TeamMembersController < ProjectController
5 # Authorize 2 # Authorize
6 - before_filter :add_project_abilities  
7 before_filter :authorize_read_project! 3 before_filter :authorize_read_project!
8 before_filter :authorize_admin_project!, except: [:index, :show] 4 before_filter :authorize_admin_project!, except: [:index, :show]
9 5
app/controllers/wikis_controller.rb
1 -class WikisController < ApplicationController  
2 - before_filter :project  
3 - before_filter :add_project_abilities 1 +class WikisController < ProjectController
4 before_filter :authorize_read_wiki! 2 before_filter :authorize_read_wiki!
5 before_filter :authorize_write_wiki!, only: [:edit, :create, :history] 3 before_filter :authorize_write_wiki!, only: [:edit, :create, :history]
6 before_filter :authorize_admin_wiki!, only: :destroy 4 before_filter :authorize_admin_wiki!, only: :destroy
7 - layout "project"  
8 5
9 def pages 6 def pages
10 @wikis = @project.wikis.group(:slug).order("created_at") 7 @wikis = @project.wikis.group(:slug).order("created_at")