Commit 078a8f0e662a1626b53bbf7f7c3e2b0599c94810
1 parent
0439387b
Exists in
master
and in
4 other branches
factorize before_filters and layout for projects related controllers
Showing
17 changed files
with
33 additions
and
101 deletions
Show diff stats
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
| ... | ... | @@ -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 < 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 < 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") | ... | ... |