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 76 end
77 77  
78 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 80 @project || render_404
81 81 end
82 82  
... ...
app/controllers/commits_controller.rb
1 1 require "base64"
2 2  
3   -class CommitsController < ApplicationController
4   - before_filter :project
5   - layout "project"
6   -
  3 +class CommitsController < ProjectController
7 4 # Authorize
8   - before_filter :add_project_abilities
9 5 before_filter :authorize_read_project!
10 6 before_filter :authorize_code_access!
11 7 before_filter :require_non_empty_project
... ...
app/controllers/deploy_keys_controller.rb
1   -class DeployKeysController < ApplicationController
  1 +class DeployKeysController < ProjectController
2 2 respond_to :html
3   - layout "project"
4   - before_filter :project
5 3  
6 4 # Authorize
7   - before_filter :add_project_abilities
8 5 before_filter :authorize_admin_project!
9 6  
10   - def project
11   - @project ||= Project.find_by_code(params[:project_id])
12   - end
13   -
14 7 def index
15 8 @keys = @project.deploy_keys.all
16 9 end
... ...
app/controllers/hooks_controller.rb
1   -class HooksController < ApplicationController
2   - before_filter :project
3   - layout "project"
4   -
  1 +class HooksController < ProjectController
5 2 # Authorize
6   - before_filter :add_project_abilities
7 3 before_filter :authorize_read_project!
8 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 2 before_filter :module_enabled
4 3 before_filter :issue, only: [:edit, :update, :destroy, :show]
5 4 helper_method :issues_filter
6 5  
7   - layout "project"
8   -
9   - # Authorize
10   - before_filter :add_project_abilities
11   -
12 6 # Allow read any issue
13 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 2 before_filter :module_enabled
4 3  
5   - layout "project"
6   -
7   - # Authorize
8   - before_filter :add_project_abilities
9   -
10 4 # Allow read any issue
11 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 2 before_filter :module_enabled
4 3 before_filter :merge_request, only: [:edit, :update, :destroy, :show, :commits, :diffs, :automerge, :automerge_check, :raw]
5 4 before_filter :validates_merge_request, only: [:show, :diffs, :raw]
6 5 before_filter :define_show_vars, only: [:show, :diffs]
7   - layout "project"
8   -
9   - # Authorize
10   - before_filter :add_project_abilities
11 6  
12 7 # Allow read any merge_request
13 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 2 before_filter :module_enabled
4 3 before_filter :milestone, only: [:edit, :update, :destroy, :show]
5   - layout "project"
6   -
7   - # Authorize
8   - before_filter :add_project_abilities
9 4  
10 5 # Allow read any milestone
11 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 2 # Authorize
5   - before_filter :add_project_abilities
6   -
7 3 before_filter :authorize_read_note!
8 4 before_filter :authorize_write_note!, only: [:create]
9 5  
... ...
app/controllers/project_controller.rb 0 → 100644
... ... @@ -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 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 6 # Authorize
8   - before_filter :add_project_abilities
9 7 before_filter :authorize_read_project!, except: [:index, :new, :create]
10 8 before_filter :authorize_admin_project!, only: [:edit, :update, :destroy]
11 9 before_filter :require_non_empty_project, only: [:blob, :tree, :graph]
... ... @@ -93,19 +91,4 @@ class ProjectsController &lt; ApplicationController
93 91 format.html { redirect_to root_path }
94 92 end
95 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 94 end
... ...
app/controllers/protected_branches_controller.rb
1   -class ProtectedBranchesController < ApplicationController
2   - before_filter :project
3   -
  1 +class ProtectedBranchesController < ProjectController
4 2 # Authorize
5   - before_filter :add_project_abilities
6 3 before_filter :authorize_read_project!
7 4 before_filter :require_non_empty_project
8 5  
9 6 before_filter :authorize_admin_project!, only: [:destroy, :create]
10 7 before_filter :render_full_content
11 8  
12   - layout "project"
13   -
14 9 def index
15 10 @branches = @project.protected_branches.all
16 11 @protected_branch = @project.protected_branches.new
... ...
app/controllers/refs_controller.rb
1 1 require 'github/markup'
2 2  
3   -class RefsController < ApplicationController
  3 +class RefsController < ProjectController
4 4 include Gitlab::Encode
5   - before_filter :project
6 5  
7 6 # Authorize
8   - before_filter :add_project_abilities
9 7 before_filter :authorize_read_project!
10 8 before_filter :authorize_code_access!
11 9 before_filter :require_non_empty_project
... ... @@ -14,8 +12,6 @@ class RefsController &lt; ApplicationController
14 12 before_filter :define_tree_vars, only: [:tree, :blob, :blame, :logs_tree]
15 13 before_filter :render_full_content
16 14  
17   - layout "project"
18   -
19 15 def switch
20 16 respond_to do |format|
21 17 format.html do
... ...
app/controllers/repositories_controller.rb
1   -class RepositoriesController < ApplicationController
2   - before_filter :project
3   -
  1 +class RepositoriesController < ProjectController
4 2 # Authorize
5   - before_filter :add_project_abilities
6 3 before_filter :authorize_read_project!
7 4 before_filter :authorize_code_access!
8 5 before_filter :require_non_empty_project
9 6 before_filter :render_full_content
10 7  
11   - layout "project"
12   -
13 8 def show
14 9 @activities = @project.commits_with_refs(20)
15 10 end
... ...
app/controllers/snippets_controller.rb
1   -class SnippetsController < ApplicationController
2   - before_filter :project
  1 +class SnippetsController < ProjectController
3 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 4 # Allow read any snippet
10 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 2 # Authorize
6   - before_filter :add_project_abilities
7 3 before_filter :authorize_read_project!
8 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 2 before_filter :authorize_read_wiki!
5 3 before_filter :authorize_write_wiki!, only: [:edit, :create, :history]
6 4 before_filter :authorize_admin_wiki!, only: :destroy
7   - layout "project"
8 5  
9 6 def pages
10 7 @wikis = @project.wikis.group(:slug).order("created_at")
... ...