OSDN Git Service

factorize before_filters and layout for projects related controllers
authorCyril <jv.cyril@gmail.com>
Tue, 25 Sep 2012 23:21:37 +0000 (01:21 +0200)
committerCyril <jv.cyril@gmail.com>
Wed, 26 Sep 2012 20:27:43 +0000 (22:27 +0200)
17 files changed:
app/controllers/application_controller.rb
app/controllers/commits_controller.rb
app/controllers/deploy_keys_controller.rb
app/controllers/hooks_controller.rb
app/controllers/issues_controller.rb
app/controllers/labels_controller.rb
app/controllers/merge_requests_controller.rb
app/controllers/milestones_controller.rb
app/controllers/notes_controller.rb
app/controllers/project_controller.rb [new file with mode: 0644]
app/controllers/projects_controller.rb
app/controllers/protected_branches_controller.rb
app/controllers/refs_controller.rb
app/controllers/repositories_controller.rb
app/controllers/snippets_controller.rb
app/controllers/team_members_controller.rb
app/controllers/wikis_controller.rb

index 5ac5c63..9ea11da 100644 (file)
@@ -76,7 +76,7 @@ class ApplicationController < ActionController::Base
   end
 
   def project
-    @project ||= current_user.projects.find_by_code(params[:project_id])
+    @project ||= current_user.projects.find_by_code(params[:project_id] || params[:id])
     @project || render_404
   end
 
index 1e7aec0..c79784d 100644 (file)
@@ -1,11 +1,7 @@
 require "base64"
 
-class CommitsController < ApplicationController
-  before_filter :project
-  layout "project"
-
+class CommitsController < ProjectController
   # Authorize
-  before_filter :add_project_abilities
   before_filter :authorize_read_project!
   before_filter :authorize_code_access!
   before_filter :require_non_empty_project
index 82c1051..29f924e 100644 (file)
@@ -1,16 +1,9 @@
-class DeployKeysController < ApplicationController
+class DeployKeysController < ProjectController
   respond_to :html
-  layout "project"
-  before_filter :project
 
   # Authorize
-  before_filter :add_project_abilities
   before_filter :authorize_admin_project!
 
-  def project
-    @project ||= Project.find_by_code(params[:project_id])
-  end
-
   def index
     @keys = @project.deploy_keys.all
   end
index 4359e99..23b8119 100644 (file)
@@ -1,9 +1,5 @@
-class HooksController < ApplicationController
-  before_filter :project
-  layout "project"
-
+class HooksController < ProjectController
   # Authorize
-  before_filter :add_project_abilities
   before_filter :authorize_read_project!
   before_filter :authorize_admin_project!, only: [:new, :create, :destroy]
 
index ceeee00..114a6a1 100644 (file)
@@ -1,14 +1,8 @@
-class IssuesController < ApplicationController
-  before_filter :project
+class IssuesController < ProjectController
   before_filter :module_enabled
   before_filter :issue, only: [:edit, :update, :destroy, :show]
   helper_method :issues_filter
 
-  layout "project"
-
-  # Authorize
-  before_filter :add_project_abilities
-
   # Allow read any issue
   before_filter :authorize_read_issue!
 
index 189d8d9..203bff5 100644 (file)
@@ -1,12 +1,6 @@
-class LabelsController < ApplicationController
-  before_filter :project
+class LabelsController < ProjectController
   before_filter :module_enabled
 
-  layout "project"
-
-  # Authorize
-  before_filter :add_project_abilities
-
   # Allow read any issue
   before_filter :authorize_read_issue!
 
index 1d0da43..db6e48d 100644 (file)
@@ -1,13 +1,8 @@
-class MergeRequestsController < ApplicationController
-  before_filter :project
+class MergeRequestsController < ProjectController
   before_filter :module_enabled
   before_filter :merge_request, only: [:edit, :update, :destroy, :show, :commits, :diffs, :automerge, :automerge_check, :raw]
   before_filter :validates_merge_request, only: [:show, :diffs, :raw]
   before_filter :define_show_vars, only: [:show, :diffs]
-  layout "project"
-
-  # Authorize
-  before_filter :add_project_abilities
 
   # Allow read any merge_request
   before_filter :authorize_read_merge_request!
index e8dbc8e..19baf53 100644 (file)
@@ -1,11 +1,6 @@
-class MilestonesController < ApplicationController
-  before_filter :project
+class MilestonesController < ProjectController
   before_filter :module_enabled
   before_filter :milestone, only: [:edit, :update, :destroy, :show]
-  layout "project"
-
-  # Authorize
-  before_filter :add_project_abilities
 
   # Allow read any milestone
   before_filter :authorize_read_milestone!
index f003ea7..138d517 100644 (file)
@@ -1,9 +1,5 @@
-class NotesController < ApplicationController
-  before_filter :project
-
+class NotesController < ProjectController
   # Authorize
-  before_filter :add_project_abilities
-
   before_filter :authorize_read_note!
   before_filter :authorize_write_note!, only: [:create]
 
diff --git a/app/controllers/project_controller.rb b/app/controllers/project_controller.rb
new file mode 100644 (file)
index 0000000..84c81ce
--- /dev/null
@@ -0,0 +1,16 @@
+class ProjectController < ApplicationController
+  before_filter :project
+  # Authorize
+  before_filter :add_project_abilities
+
+  layout :determine_layout
+
+  protected
+  def determine_layout
+    if @project && !@project.new_record?
+      'project'
+    else
+      'application'
+    end
+  end
+end
index b4d026f..2a11611 100644 (file)
@@ -1,11 +1,9 @@
 require Rails.root.join('lib', 'gitlab', 'graph_commit')
 
-class ProjectsController < ApplicationController
-  before_filter :project, except: [:index, :new, :create]
-  layout :determine_layout
+class ProjectsController < ProjectController
+  skip_before_filter :project, only: [:new, :create]
 
   # Authorize
-  before_filter :add_project_abilities
   before_filter :authorize_read_project!, except: [:index, :new, :create]
   before_filter :authorize_admin_project!, only: [:edit, :update, :destroy]
   before_filter :require_non_empty_project, only: [:blob, :tree, :graph]
@@ -93,19 +91,4 @@ class ProjectsController < ApplicationController
       format.html { redirect_to root_path }
     end
   end
-
-  protected
-
-  def project
-    @project ||= Project.find_by_code(params[:id])
-    @project || render_404
-  end
-
-  def determine_layout
-    if @project && !@project.new_record?
-      "project"
-    else
-      "application"
-    end
-  end
 end
index 78c9c9e..7675d3e 100644 (file)
@@ -1,16 +1,11 @@
-class ProtectedBranchesController < ApplicationController
-  before_filter :project
-
+class ProtectedBranchesController < ProjectController
   # Authorize
-  before_filter :add_project_abilities
   before_filter :authorize_read_project!
   before_filter :require_non_empty_project
 
   before_filter :authorize_admin_project!, only: [:destroy, :create]
   before_filter :render_full_content
 
-  layout "project"
-
   def index
     @branches = @project.protected_branches.all
     @protected_branch = @project.protected_branches.new
index 9036143..0139c09 100644 (file)
@@ -1,11 +1,9 @@
 require 'github/markup'
 
-class RefsController < ApplicationController
+class RefsController < ProjectController
   include Gitlab::Encode
-  before_filter :project
 
   # Authorize
-  before_filter :add_project_abilities
   before_filter :authorize_read_project!
   before_filter :authorize_code_access!
   before_filter :require_non_empty_project
@@ -14,8 +12,6 @@ class RefsController < ApplicationController
   before_filter :define_tree_vars, only: [:tree, :blob, :blame, :logs_tree]
   before_filter :render_full_content
 
-  layout "project"
-
   def switch 
     respond_to do |format| 
       format.html do 
index cd20677..5f55ee4 100644 (file)
@@ -1,15 +1,10 @@
-class RepositoriesController < ApplicationController
-  before_filter :project
-
+class RepositoriesController < ProjectController
   # Authorize
-  before_filter :add_project_abilities
   before_filter :authorize_read_project!
   before_filter :authorize_code_access!
   before_filter :require_non_empty_project
   before_filter :render_full_content
 
-  layout "project"
-
   def show
     @activities = @project.commits_with_refs(20)
   end
index b00c928..3d404e6 100644 (file)
@@ -1,10 +1,5 @@
-class SnippetsController < ApplicationController
-  before_filter :project
+class SnippetsController < ProjectController
   before_filter :snippet, only: [:show, :edit, :destroy, :update, :raw]
-  layout "project"
-
-  # Authorize
-  before_filter :add_project_abilities
 
   # Allow read any snippet
   before_filter :authorize_read_snippet!
index a50dcd3..8261acf 100644 (file)
@@ -1,9 +1,5 @@
-class TeamMembersController < ApplicationController
-  before_filter :project
-  layout "project"
-
+class TeamMembersController < ProjectController
   # Authorize
-  before_filter :add_project_abilities
   before_filter :authorize_read_project!
   before_filter :authorize_admin_project!, except: [:index, :show]
 
index 55ccfe7..f13d072 100644 (file)
@@ -1,10 +1,7 @@
-class WikisController < ApplicationController
-  before_filter :project
-  before_filter :add_project_abilities
+class WikisController < ProjectController
   before_filter :authorize_read_wiki!
   before_filter :authorize_write_wiki!, only: [:edit, :create, :history]
   before_filter :authorize_admin_wiki!, only: :destroy
-  layout "project"
   
   def pages
     @wikis = @project.wikis.group(:slug).order("created_at")